c++ - 如何为 extern "C"设置 C 版本?

标签 c++ c gcc extern

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

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

我用类似的东西编译它

g++ -std=c++11 main.cpp

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

最佳答案

extern "C" block 中的代码仍被编译为 C++(在您的情况下为 C++11)。 extern "C" 只是给它 C 链接。

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

如果你想写C代码,用C写,然后用C编译器。 extern "C" 用于编写可从 C 调用的 C++ 代码,或允许 C++ 代码调用 C(或 C ABI)代码。

关于c++ - 如何为 extern "C"设置 C 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932413/

相关文章:

c++ - 计算一个垂直于另一个给定 vector 的 vector (都是 3D 的)

c++ - 使用 HashMap 将点划分为子区域

c++ - C++17 中的 std::make_shared() 更改

c - 如何获取两行之间的用户输入

gcc - 检测预处理器中的 ARM NEON 可用性?

c++ - poll 与 epoll 洞察力

c++ - 将类似涂鸦功能后的客户区保存为图像

C试图将指针复制到新指针

c - Long long int 使我的埃拉托色尼筛法超慢?

c++ - 更小的 GCC 包,只需要 C