GCC的C和C ++编译器有几个有用的警告选项,例如
-Wsuggest-attribute=pure
-Wsuggest-attribute=const
-Wsuggest-attribute=format
等等。当我尝试使用这些选项编译我的代码时,编译器还会对我使用的(仅限标题)库中的代码发出警告。有没有办法只在我的代码上应用警告,例如列出包含相关文件的目录或通过其他方式?
答案 0 :(得分:1)
您可能希望查看GCC的Diagnostic pragmas - 自gcc-4.5以来,以下表单支持这些内容。
在您不关心的所有库标题的#include
之后,添加:
#pragma GCC诊断警告" -Wsuggest-attribute = format"
以及要启用的其他警告,要警告要添加的属性。
E.g。以下my_printf
可以使用attribute(format)
说明符:
int my_printf(const char * format, ...) __attribute__((__format__(__printf__, 1, 2)));
int my_printf(const char * format, ...) {
va_list ap;
va_start(ap, format);
vprintf (format, ap);
va_end(ap);
return 0;
}