我有一大堆代码可以禁用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的使用。