我有C ++代码,里面有一些C代码
extern "C"{
...
}
int main(){
...
}
我用
之类的东西编译它g++ -std=c++11 main.cpp
用于编译代码的C
部分的C
标准的版本是什么?如何为C片段明确设置版本?
答案 0 :(得分:9)
extern "C"
块中的代码仍然编译为C ++(在您的情况下为C ++ 11)。 extern "C"
只是给它C
链接。
C链接意味着可以从C调用块中定义的函数,声明但未定义的函数必须由C程序定义,或者由具有C链接的目标文件定义。
如果要编写C代码,请用C编写,然后使用C编译器。 extern "C"
用于编写可以从C调用的C ++代码,或者用于允许C ++代码调用C(或C ABI)代码。