面试真题

C++ · 中等 · 思必驰

C++调用C函数,C调用C++函数,原理是什么?

中等 C++ 🎤 思必驰
参考答案
结论:C++与C互调核心在于名称修饰(name mangling)不同,用extern "C"统一符号。要点:C++为支持重载将函数名修饰为复杂符号(如_Z3fooi),C保持原样(foo);C++调用C:在C++中用extern "C"声明C头文件函数,按C链接;C调用C++:将导出的C++函数用extern "C"包裹,生成C风格符号,但函数不能重载且需包装类成员为普通函数;原理是链接器依符号匹配,extern "C"禁用C++修饰,实现跨语言链接。注意C不支持C++异常等特性。
题目整理自公开面经,答案由校招宝自研生成,仅供参考