仅在 Visual Studio 中报告 C 警告
Posted
技术标签:
【中文标题】仅在 Visual Studio 中报告 C 警告【英文标题】:Only report C warnings in visual studio 【发布时间】:2016-06-22 23:16:08 【问题描述】:我目前在 Visual Studio 的 C 项目中工作(社区 2015)。我试图从我的项目中删除警告。目前我收到以下警告:
C4100: 'argc': 未引用的形参
搜索我收到此警告的原因时,我发现了这个堆栈溢出问题:Why the unnamed parameter warning discrepency between C and C++?
据我了解,这是一个 C++ 警告,而不是 C 警告,即使我的文件以 .c
扩展名结尾。 Visual Studio 中是否有任何设置将构建警告限制为 C?
【问题讨论】:
这不是“错误”,而是warning。您得到它是因为您将警告级别从默认级别 3 提高到级别 4,这会导致编译器发出更多警告。它应该是您有一些不使用的参数的余数,但可以放心地忽略它。 你是对的。我知道这是一个警告,所以我不确定为什么我错误地将其命名为“错误”。我已经编辑了原始问题以匹配。 消除:(void)argc;
... 或 int main(void)
Visual Studio 首先是一个 C++ 编译器。我认为没有办法将其配置为仅显示 C 警告。老实说,虽然我喜欢 Windows 和 Visual Studio,但 C 合规性并不是它们的强项之一(除非你使用纯 ansi-c 进行编码)。我总是使用 gcc 作为我的主要 C 编译器。
【参考方案1】:
这是一个 C 警告。
这是说你有一个函数的参数,该参数实际上并没有在函数中使用。
注意:如果函数是main()
,那么永远不要假设任何参数,尤其是命令行参数的数量。
这意味着在没有首先检查argc
以确保参数确实存在之前,不要引用argv[0]
之外的任何内容。
【讨论】:
以上是关于仅在 Visual Studio 中报告 C 警告的主要内容,如果未能解决你的问题,请参考以下文章
Visual Leak Detector 在 VC++ 的 CRT 模块中报告奇怪的泄漏
如何在 Visual Studio 2015 for C 中禁用警告? [复制]