GCC,C:找出在#pragma ignore中使用的默认警告的名称

Guy*_*ush 7 c gcc warnings

我知道我可以放

#pragma GCC diagnostic ignored "<warning>"
Run Code Online (Sandbox Code Playgroud)

到源文件的顶部以禁止与此特定源文件相关的警告.但是,似乎有些名称不够具体.例如,

#pragma GCC diagnostic ignored "-Wwrite-strings"
Run Code Online (Sandbox Code Playgroud)

不会阻止gcc(4.7.2)显示未给出确切名称的警告消息,而是仅通过[默认启用]来遵循这些消息.我想我需要知道正确的警告名称,所以我可以在线上使用它们#pragma.我试过了

-fdiagnostics-show-option,
Run Code Online (Sandbox Code Playgroud)

但警告仍显示为[默认启用].

有没有办法识别这些警告或者禁止与特定源文件相关的警告?

非常感谢你!

Man*_*ode 2

您必须推送和弹出诊断状态。像这样:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
    /* ignoring warning */

    int unused_function( void ) {
         return 1337;
    }
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)