gpt4 book ai didi

c++ - 如果用 C++ 重写了 C 项目的部分代码,但保留了相同的 API,是否存在 ABI 兼容性问题?

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:49 26 4
gpt4 key购买 nike

对于一个用 C 写的共享库项目,如果我用 C++ 重写部分代码,但保留完全相同的 API,是否会出现 ABI 兼容性问题?

最佳答案

如果您保留相同的 API(函数名称和参数类型),您应该可以继续使用。

需要做的是用这个(从here复制粘贴)包装您的头文件:

#ifdef __cplusplus
extern "C" {
#endif

// all of your legacy C code here

#ifdef __cplusplus
}
#endif

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

关于c++ - 如果用 C++ 重写了 C 项目的部分代码,但保留了相同的 API,是否存在 ABI 兼容性问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24444387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com