gpt4 book ai didi

c++ - `#define` 宏中的 pragma 以禁用警告

转载 作者:太空狗 更新时间:2023-10-29 23:02:24 29 4
gpt4 key购买 nike

我正在尝试做这样的事情:

#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

在包含在 W4 上产生大量警告的第 3 方 header 之前,我想在我的代码中定义一个宏,例如“DISABLE_WARNINGS”,并确保代码可以在任何平台上编译。

例如:

DISABLE_WARNINGS
#include <gtkmm/buttonbox.h>
#include <gtkmm/box.h>
#include <gtkmm/window.h>
#include <gtkmm/button.h>
ENABLE_WARNINGS

使用单个宏实现此目的的最佳方法是什么?

最佳答案

在C99模式下,可以使用_Pragma代替#pragma:

#define DISABLE_WARNINGS \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wall\"")

关于c++ - `#define` 宏中的 pragma 以禁用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28737178/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com