2

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

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

#pragma warning(pop)在文件末尾省略的可能后果是什么?

谢谢

4

2 回答 2

2

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

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

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

于 2012-08-16T23:14:58.733 回答
1

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

于 2012-08-16T22:48:57.460 回答