我可以在 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/