gpt4 book ai didi

c++ - C 方法是否可能无法包含在 C++ 项目中?

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:21 24 4
gpt4 key购买 nike

我知道我可以使用 extern "C" 将 C 方法包含在 C++ 项目中。但是现在让我们假设我正在考虑创建一个 C++ 项目,该项目将使用相当多的 C 方法,这些方法来 self 制作的库以及其他人/公司制作的库,这些人/公司的开发细节和编译规范我是根本不知道。

C 库的某些方法是否可能无法包含在我的 C++ 项目中,具有未知的编译和配置细节?extern "C"?或者在使用 extern "C" 的情况下,所有 C 方法都必须与 C++ 代码 100% 兼容吗?

最佳答案

C 导出的某些函数使用的名称可能与 C++ 关键字冲突。您将无法使用 extern "C" 声明它们。

汇编程序导出的函数甚至可以使用与 C 关键字冲突的名称。

声明为静态的那些和函数仍然可以通过函数指针调用,只要库为您提供获取函数指针的方法即可。

出于同样的原因,在 C++ 模式下可能无法解析 header ——例如 restrict 关键字。

除了命名问题,C++ 完全支持 C 调用约定。这就是 extern "C" 的意义所在。

关于c++ - C 方法是否可能无法包含在 C++ 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25766706/

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