如果C项目的部分代码在C ++中重写,但是遗漏了相同的API,是否存在ABI兼容性问题?

时间:2014-06-27 05:13:45

标签: c++ c abi

对于用C编写的共享库项目,如果我用C ++重写部分代码,但保留了完全相同的API,我是否会遇到任何ABI兼容性问题?

1 个答案:

答案 0 :(得分:4)

如果您保留相同的API(函数名称和参数类型),那么您应该很高兴。

需要做的是用这个包装你的头文件(复制并粘贴自here

#ifdef __cplusplus
extern "C" {
#endif

// all of your legacy C code here

#ifdef __cplusplus
}
#endif

这可以确保C ++编译器不会破坏这些名称,因此C编译器的外部符号仍然可以与导出链接。