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

我知道我可以放

#pragma GCC diagnostic ignored "" 

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

 #pragma GCC diagnostic ignored "-Wwrite-strings" 

不会阻止gcc(4.7.2)显示未给出确切名称的警告消息,相反,这些消息仅遵循[默认启用]。 我想我需要知道正确的警告名称,以便我可以在#pragma行中使用它们。 我试过了

 -fdiagnostics-show-option, 

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

有没有办法识别这些警告或者替代地抑制与特定源文件相关的警告?

非常感谢你!

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

 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" /* ignoring warning */ int unused_function( void ) { return 1337; } #pragma GCC diagnostic pop