GCC:使用-pedantic时是否可以禁用“枚举器列表末尾的逗号”警告?

时间:2009-06-16 16:01:12

标签: gcc enums

我正在编译C ++代码,我想启用-pedantic选项 我正在使用GCC 4.0,在Mac OS X Leopard上运行Xcode 例如,可以允许使用-pedantic(带-Wno-variadic-macros和-Wno-long-long)时通常禁止的可变宏和long long类型。 但我找不到任何禁用“枚举器列表末尾的逗号”警告的内容。
有可能吗?

感谢。

2 个答案:

答案 0 :(得分:4)

枚举器末尾的逗号在C99中有效但在C89中无效,因此如果您的代码有效,则以下内容将有效

gcc -std=c99 -pedantic foo.c

我很确定它在C ++中无效(根据g ++)

编辑:在HP-UX上使用GCC 4.2.1对此进行了测试,并且没有错误/警告 foo.c的

int main(int argc, char** argv) {
    enum { A, B, };
    return 0;
}


gcc -std=c99 -pedantic foo.c

答案 1 :(得分:2)

在C ++中,即使它在C ++ 11中合法,也无法禁用它。 所以在将来,当GCC得到纠正时,-std = c ++ 11应该禁用它。

-std = c99仅适用于C,而不适用于C ++(如问题所示)。