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

时间:2009-05-01 01:00:47

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

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

2 个答案:

答案 0 :(得分:2)

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

#pragma warning(disable:2400)

如果除了对文件进行全面禁用之外,您还需要更多的灵活性,以下页面列出了其他几个更细粒度的选项。

根据您的信息,不清楚它是否是编译器中的错误或配置问题。我倾向于配置问题,特别是冲突的编译器选项,这使得很难抑制警告。

编辑

OP提到他们无法控制生成的代码,所以他们不能直接包含pragma。如果是这样,那就试试这个技巧吧。假设文件名是Generated.cpp。不再包含Generated.cpp作为要编译的文件之一。而是创建一个名为Example.cpp的新文件,其中包含以下内容

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

现在,只通过编译Example.cpp,您将获得带有禁用警告的Generated.cpp文本。

答案 1 :(得分:0)

你的意思是pragma

#pragma warning( disable : 2400 )