没有#pragma警告(pop)的#pragma warning(push)

时间:2012-08-16 22:45:33

标签: c++ visual-studio-2010 visual-c++

在Visual Studio 2010中使用C ++ Native解决方案。

在所有包含之后,

#pragma warning (push)用于cpp文件的开头。之后,#pragma warning(disable : XXXX)有几个禁用警告。

在文件末尾省略#pragma warning(pop)会产生什么后果?

由于

2 个答案:

答案 0 :(得分:2)

如果您有任何其他源文件#include该cpp文件,那么编译外部文件时的警告状态将被搞砸 - 当警告得到保证时,它可能无法发出警告。

但请注意,#include cpp文件被视为错误形式和代码气味;有一些罕见的情况可能是正确的事情(例如构建系统#include许多源文件合并为一个以减少编译时间,有点像预编译头文件),但几乎总是这样这是错误的事情,即使它设法编译和链接没有错误。

如果该源文件在其他任何地方都不是#include d,那么假设编译器没有首先抱怨这种不匹配,则不会产生#pragma warning(pop)将不会产生任何不利后果。

答案 1 :(得分:1)

由于这是仅限编译器的设置,因此不会对程序本身产生任何影响。它可能会搞砸外部包含的警告。