c++ - 如何禁止 Visual Studio 2005 中的警告 4200?

标签 c++ visual-studio visual-studio-2005 visual-c++-2005 suppress-warnings

我可以在 C/C++ 高级属性页中禁止 Visual Studio 2005 SP1 中的许多警告,这会导致 IDE 在调用编译器的命令行上使用/wd 开关。但是,当我尝试禁止警告 4200(使用了非标准扩展:结构/union 中的零大小数组)时,它仍然在我编译时出现。 (当然这是有道理的;我只是无法修复代码,也不值得费心,因为它是生成的,并且警告在这种情况下完全是良性的。)有没有人碰巧知道这是否是编译器中的错误?或者我可以做些什么?

最佳答案

要完全禁用文件中的警告,您可以将以下内容添加到文件顶部

#pragma warning(disable:2400)

如果您想要更多的灵 active 而不是全面禁用文件,下一页列出了其他几个更细粒度的选项。

根据您的信息,尚不清楚这是编译器中的错误还是配置问题。我会倾向于配置问题,特别是编译器选项冲突导致难以抑制警告。

编辑

OP 提到他们无法控制生成的代码,因此他们无法直接包含编译指示。如果是这种情况,请尝试此技巧。假设文件名为 Generated.cpp。不再将 Generated.cpp 作为要编译的文件之一包含在内。而是使用以下内容创建一个名为 Example.cpp 的新文件

#pragma warning(disable:2400)
#include "Generated.cpp"

现在,您只需编译 Example.cpp 即可获得带有禁用警告的 Generated.cpp 文本。

关于c++ - 如何禁止 Visual Studio 2005 中的警告 4200?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/809807/

相关文章:

ide - 为什么 Visual Studio 中的 Consolas 看起来很粗?

c++ - 指向成员的指针可以绕过成员的访问级别吗?

c++ - 获取 float 类型的参数时,Variadic C++ 函数不起作用

c# - 需要解决方法 : notify a user that exe is missing dependencies from within the application?

c# - 单元测试功能

c++ -/MT 和/MD 构建崩溃,但仅当未附加调试器时才会崩溃 : how to debug?

C++ 双地址运算符? (&&)

c++ - MFC 的 CString 的奇怪行为

windows - 无法在 MS VS 代码上运行 flutter 命令

c++ - 无论如何我可以在 visual studio 2005 上使用 visual studio 2015 运行一个已经编码的项目