如何为extern“C”设置C版本?

时间:2014-05-29 11:36:38

标签: c++ c gcc extern

我有C ++代码,里面有一些C代码

extern "C"{
 ...
}
int main(){
...
}

我用

之类的东西编译它
g++ -std=c++11 main.cpp

用于编译代码的C部分的C标准的版本是什么?如何为C片段明确设置版本?

1 个答案:

答案 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)代码。