我有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片段明确设置版本?
extern "C"块中的代码仍然编译为C++(在您的情况下为C++ 11).extern "C"只是给它C联系.
C链接意味着可以从C调用块中定义的函数,并且声明但未定义的函数必须由C程序定义,或者由具有C链接的目标文件定义.
如果要编写C代码,请用C编写,然后使用C编译器.extern "C"用于编写可以从C调用的C++代码,或者用于允许C++代码调用C(或C ABI)代码.