0

我的 C++ 项目有很多头文件和源代码。我想抑制警告,因此了解了#pragma 警告预处理器。我可以通过放置 #pragma warning(push) #pragma warning(disable:4251) ...some declarations/prototypes #pragma warning(pop) 来抑制一种警告,即 4251

在相应源文件 (utils.cpp) 的头文件 (utils.h) 中,已显示此警告。

现在,在我的源文件 clah.cpp 中出现了另一种警告 (4146)。如前所述,我将相同的代码放入此文件的头文件(clahe.h)。但是,编译器无法抑制此警告?如果我在某个地方做错了,你能告诉我吗?或者,我错误地放置了编译指示语句?谢谢。

PS,我是 C++ 的初学者。

4

1 回答 1

0

如果你有一个标题

#pragma warning(push) 

在顶部和一个

#pragma warning(pop) 

在底部,然后在解析标题后,将重置警告设置。您还需要pragma在您的 cpp 文件中添加一个。

#include "someheader.h"

//this is the implementation file
//some code

基本上翻译成:

//contents of the header file
#pragma warning(push) 
#pragma warning(disable:4251)

//warning is disabled here

#pragma warning(pop)

//popped - initial state (warning enabled) back

//this is the implementation file
//some code
于 2013-05-13T07:45:02.303 回答