2016-05-31 133 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; 
} 
相關問題