如何禁用多个GCC编译警告?

时间:2017-04-26 19:26:42

标签: c gcc pragma

我有一大堆代码可以禁用via pragma的编译警告,例如下面的示例禁用已定义但未使用的编译警告:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
static int
bs_qd_debug_kv(void* cls, enum MHD_ValueKind kind, const char* key, const char* value)
{
    fprintf(stderr, "key [%s] -> value [%s]\n", key, value);
    return MHD_YES;
}
#pragma GCC diagnostic pop

这很好用,但是如何禁用多个警告?

例如,我使用以下两个编译指示获得已定义但未使用的编译警告:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
static int
bs_qd_debug_kv(void* cls, enum MHD_ValueKind kind, const char* key, const char* value)
{
    fprintf(stderr, "key [%s] -> value [%s]\n", key, value);
    return MHD_YES;
}
#pragma GCC diagnostic pop
#pragma GCC diagnostic pop

是否有#pragma指令的不同排列,允许在所附代码上指定多个编译指示?

编辑

在阅读链接的问题后,似乎问题与此问题几乎完全不同。这个问题询问了多个GCC特定编译指示的使用。链接的问题询问编译器对OpenMP的编译指示的响应。我不确定这两个问题是否完全相同,即使它们都切向触及pragma与GCC的使用。

0 个答案:

没有答案