12. 在 C++程序中调用被 C 编译器编译后的函数,为什么要加 extern “C” ?

C++为了支持重载,对编译时函数的命名规则进行更改.使用extern “c”的方式在c++程序中声明C语言文件中的函数,在编译时告诉编译器使用C语言的规则对该函数的函数名进行重命名.在C++中,如果需要调用被C编译器编译后的函数(也就是C语言函数),需要使用extern “C”语法来指定函数按照C的命名和调用约定进行编译和链接。这是由于C++与C在函数命名和调用约定上存在差异导致的。通过添加extern “C”语法,可以告知C++编译器以C的命名和调用约定来处理函数,从而保证正确的链接和调用。示例用法:cpp// C语言编译后的源文件(例如:example.c)#ifdef __cplusplusextern “C” {#endifvoid someFunction(); // 声明一个C语言函数#ifdef __cplusplus}#endif// C++源文件(例如:main.cpp)extern “C” void someFunction(); // 使用extern “C”声明C语言函数的调用int main() { someFunction(); // 调用C语言函数 return 0;}12345678910111213141516171819在上述示例中,使用extern “C”告知C++编译器来处理C语言函数的链接和调用。这样就能够在C++程序中正确地调用C编译器编译后的函数。———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/qq_52896916/article/details/134093407

发表评论