如何将-std = c99传递给g ++?

时间:2011-09-19 08:48:55

标签: gcc compiler-errors g++

我的cpp文件包含C头,其末尾有一个带逗号的枚举器。结果g ++产生警告:

  

警告:枚举器列表末尾的逗号

如何告诉g ++对该cpp文件使用-std = c99?也就是说,我该如何避免这种警告?

我已经尝试过:-std = c99但它导致:“cc1plus:warning:命令行选项”-std = c99“对C / ObjC有效但对C ++无效”

注意:包含C标头的是extern“C”命令。

2 个答案:

答案 0 :(得分:3)

你没有。 g++编译C ++,而不是C. C ++源文件中包含的C头仍然必须遵循C ++规则,即使使用extern "C"也是如此。例如,标头不能使用class作为标识符。

答案 1 :(得分:2)

#include只需将包含文件的文本插入#include行所在的位置即可。预处理的结果是单个文本文件,然后发送到编译器,您无法在文件中间更改语言。

由于您的cpp文件正在编译为C ++代码,因此它包含的头文件也是如此。 extern "C"不会改变语言;它只是告诉C ++编译器声明的函数使用C调用约定。