- 使用GCC自带的屏蔽宏(ignore):这种方式比较重量级
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wwrite-strings"
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic pop
- 可以设置一组宏来简化使用:
#define dw(N) _Pragma("GCC diagnostic push"); \
_Pragma(#N);
#define WARNING_IGNORE(N) dw(GCC diagnostic ignored N)
#define WARNING_RECOVER _Pragma("GCC diagnostic pop")
int main()
{
WARNING_IGNORE("-Wunused-variable");
int nn = 0;
WARNING_RECOVER;
int kk = 0;
return 0;
}