gpt4 book ai didi

c++ - extern "C"(C联动)默认

转载 作者:搜寻专家 更新时间:2023-10-30 23:49:41 25 4
gpt4 key购买 nike

问题

GCC、MSVC 或 Clang 或某些组合是否支持将链接设置为默认为 C?

背景

我有一个大型混合 C/C++ 项目,虽然使用 C 链接导出 C++ 源代码中的符号既简单又合乎逻辑,但这些相同的源假设项目其余部分的内容处于 C++ 链接下。

当前情况要求我显式包装 C 源代码使用的在 C++ 源代码中定义的任何内容,以及 C++ 源代码使用的来自 C 源代码的所有内容 extern "C++" .

最重要的是,我不能把extern "C"围绕整个源文件或头文件,因为实际的 C++ 东西会提示。 (例如来自 #include <memory> 或我定义的模板。)

最佳答案

头文件中的标准模式是:

#ifdef __cplusplus

// C++ stuff

extern "C" {
#endif

// C/C++ stuff

#ifdef __cplusplus
}
#endif

我不确定您还有其他选择。 C/C++ 的东西必须在任何地方都用 C 链接声明。 C++ 特定的东西必须在任何地方都用 C++ 链接声明。

关于c++ - extern "C"(C联动)默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864264/

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