仅在 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

Visual Studio 安装和部署构建失败且没有错误

如何在 Visual Studio 2015 for C 中禁用警告? [复制]

如何在 Visual Studio 2005 中禁止警告 4200?

C语言visual studio警告:取消对NULL指针“p”的引用