如何为extern"C"设置C版本?

use*_*710 1 c c++ gcc extern

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

extern "C"{
 ...
}
int main(){
...
}
Run Code Online (Sandbox Code Playgroud)

我用类似的东西编译它

g++ -std=c++11 main.cpp
Run Code Online (Sandbox Code Playgroud)

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

Man*_*rse 9

extern "C"块中的代码仍然编译为C++(在您的情况下为C++ 11).extern "C"只是给它C联系.

C链接意味着可以从C调用块中定义的函数,并且声明但未定义的函数必须由C程序定义,或者由具有C链接的目标文件定义.

如果要编写C代码,请用C编写,然后使用C编译器.extern "C"用于编写可以从C调用的C++代码,或者用于允许C++代码调用C(或C ABI)代码.