将-Wsuggest属性限制为某些文件

时间:2016-05-31 09:51:25

标签: gcc

GCC的C和C ++编译器有几个有用的警告选项,例如

  • -Wsuggest-attribute=pure
  • -Wsuggest-attribute=const
  • -Wsuggest-attribute=format

等等。当我尝试使用这些选项编译我的代码时,编译器还会对我使用的(仅限标题)库中的代码发出警告。有没有办法只在我的代码上应用警告,例如列出包含相关文件的目录或通过其他方式?

1 个答案:

答案 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;
}