我的cpp文件包含C头,其末尾有一个带逗号的枚举器。结果g ++产生警告:
警告:枚举器列表末尾的逗号
如何告诉g ++对该cpp文件使用-std = c99?也就是说,我该如何避免这种警告?
我已经尝试过:-std = c99但它导致:“cc1plus:warning:命令行选项”-std = c99“对C / ObjC有效但对C ++无效”
注意:包含C标头的是extern“C”命令。
答案 0 :(得分:3)
你没有。 g++
编译C ++,而不是C. C ++源文件中包含的C头仍然必须遵循C ++规则,即使使用extern "C"
也是如此。例如,标头不能使用class
作为标识符。
答案 1 :(得分:2)
#include
只需将包含文件的文本插入#include
行所在的位置即可。预处理的结果是单个文本文件,然后发送到编译器,您无法在文件中间更改语言。
由于您的cpp文件正在编译为C ++代码,因此它包含的头文件也是如此。 extern "C"
不会改变语言;它只是告诉C ++编译器声明的函数使用C调用约定。