再一次理解 C++ 中的 extern "C"

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

本文介绍了在C++中使用extern "C"的作用,通过反汇编代码可以看到修饰函数的名称与原先代码中的名称一致。在C++调用C代码和C调用C++代码时需要使用extern "C",但某些不能在extern "C"中使用的代码需要注意。给出了在C++中调用C代码和在C中调用C++代码的最小可运行代码样例。

🎯

关键要点

  • 本文介绍了在C++中使用extern 'C'的作用。

  • 通过反汇编可以看到修饰函数的名称与原先代码中的名称一致。

  • 在C++调用C代码时需要使用extern 'C',以避免符号名被修饰。

  • 在C中调用C++代码时也需要使用extern 'C',以生成未修饰的符号名。

  • 某些不能在extern 'C'中使用的代码包括需要C++名称修饰的特性。

  • 提供了在C++中调用C代码的最小可运行代码样例。

  • 在C中调用C++代码的最小可运行代码样例稍微复杂,需要手动管理函数接口。

  • 如果不使用extern 'C',链接器会报错,因为C++和C对符号名的处理不同。

➡️

继续阅读