2016-05-31 64 views
0

GCC的C和C++编译器有几个有用的警告选项,如限制-Wsuggest属性对某些文件

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

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

回答

1

您可能想看看GCC的Diagnostic pragmas--自从gcc-4.5以来,这些支持以下格式。

你不关心所有库头的#include后,加入: 的#pragma GCC诊断警告“-Wsuggest属性=格式” ,并进一步警告启用,被警告的属性添加。

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