C++ “#define”宏中的pragma用于禁用警告
我正在尝试这样做:C++ “#define”宏中的pragma用于禁用警告,c++,c,macros,C++,C,Macros,我正在尝试这样做: #ifdef _MSC_VER #define DISABLE_WARNINGS() \ #pragma warning( push, 0 ) #elif __GNUC__ #define DISABLE_WARNINGS() \ #define DISABLE_WARNINGS \ #pragma GCC diagnostic push \ #pragma GCC diagnostic ignored
#ifdef _MSC_VER
#define DISABLE_WARNINGS() \
#pragma warning( push, 0 )
#elif __GNUC__
#define DISABLE_WARNINGS() \
#define DISABLE_WARNINGS \
#pragma GCC diagnostic push \
#pragma GCC diagnostic ignored "-Wall"
#endif
我想在我的代码中定义一个宏,例如“DISABLE_WARNINGS”,然后再包含在W4上产生大量警告的第三方头,并确保代码在任何平台上编译
例如:
DISABLE_WARNINGS
#include <gtkmm/buttonbox.h>
#include <gtkmm/box.h>
#include <gtkmm/window.h>
#include <gtkmm/button.h>
ENABLE_WARNINGS
禁用警告
#包括
#包括
#包括
#包括
启用警告
使用单个宏实现此目的的最佳方法是什么?在C99模式下,您可以使用
\u Pragma
而不是\Pragma
:
#define DISABLE_WARNINGS \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wall\"")
@hvd,副本没有回答如何处理平台之间的条件编译(MS-GNU C),投票重新打开。@codekiddy另一个问题已经回答了:使用
\u Pragma
。您已经有了与GCC一起使用的#pragma
指令。@codekiddy您可以连续使用两个(pragma
。@codekiddy您没有使用正确的语法来表示(pragma
)。正如在对其他问题的回答中所解释的,