【发布时间】:2018-05-30 15:53:59
【问题描述】:
我需要在我的代码中推送/弹出几个 gcc 诊断。如果在单个文件中需要这样做,我会执行以下操作:
#pragma GCC diagnostic push
#pragma GCC diagnostic error "-Wformat"
#pragma GCC diagnostic error "-Wuninitialized"
...some code...
#pragma GCC diagnostic push
但我在多个位置都需要这个。所以我想要一个#define 或类似的东西。我考虑过以下问题,但 c 预处理器不允许在 #define 中使用 #pragmas。
#define PushWarnings \
#pragma GCC diagnostic push \
#pragma GCC diagnostic error "-Wformat" \
#pragma GCC diagnostic error "-Wuninitialized"
有没有办法做到这一点?
【问题讨论】:
-
@EdHeal “修复”是什么意思?
-
代码是启用警告(或者更确切地说,将它们变成错误),而不是禁用它们。
-
@melpomene - 编译代码,这样所有警告都是错误的,不需要使用没有保护的代码位
-
你为什么不直接修复代码,让这些警告不会触发?
-
@EdHeal 有时是你无法触及的外部代码。
标签: c++ c c-preprocessor pragma