#pragma GCC diagnostic ignored "-Wformat"
的使用
在GCC下,#pragma GCC diagnostic ignored用于表示关闭诊断警告,忽略诊断问题。
格式:
#pragma GCC diagnostic ignored "-Wformat"
其中-Wformat参数,可以是没有返回值的警告"-Wreturn-type"
,函数未使用的警告"-Wunused-function"
等各种警告。可以在编译时看到GCC所提示的警告。
例如:
test.c: 在函数‘test1’中:
test.c:6:5: 警告: 在有返回值的的函数中,‘return’不带返回值 [-Wreturn-type]
可以看到提示[-Wreturn-type]
警告。
详细的警告列表可以查看Options to Request or Suppress Warnings。
#pragma GCC diagnostic ignored "-Wformat"
的示例程序如下:
#include <stdio.h>
int test1(void)
{
return;
}
//关闭警告,诊断忽略该函数没有返回值
#pragma GCC diagnostic ignored "-Wreturn-type"
int test2(void)
{
return;
}
int main(int argc, char* argv[])
{
test1();
test2();
return 0;
}
在gcc下编译
gcc -o test test.c -Wall
函数test1会提示警告不带返回值,而函数test2没有警告。
test.c: 在函数‘test1’中:
test.c:6:5: 警告: 在有返回值的的函数中,‘return’不带返回值 [-Wreturn-type]
如果屏蔽掉
//#pragma GCC diagnostic ignored "-Wreturn-type"
重新编译,则两个函数都是提示警告
test.c: 在函数‘test1’中:
test.c:6:5: 警告: 在有返回值的的函数中,‘return’不带返回值 [-Wreturn-type]
test.c: 在函数‘test2’中:
test.c:14:5: 警告: 在有返回值的的函数中,‘return’不带返回值 [-Wreturn-type]
[参考资料]
GCC, the GNU Compiler Collection
GCC, Diagnostic Pragmas
Options to Request or Suppress Warnings