gpt4 book ai didi

c++ - extern "C"---何时*确切*使用?

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:04 26 4
gpt4 key购买 nike

<分区>

如果您想将此问题标记为重复问题,请注意我已经阅读了有关此主题的问题,但我仍然不清楚某些内容。我的印象是,在包含 C header 和与 C 代码链接时使用了此构造(如果我错了,请纠正我)。这是否意味着我在不处理目标文件时永远不必使用“extern C”?如果我错了,为什么不能将旧的 C 代码编译为 C++,因为它很可能是合法的 C++ 代码?

我对此有点怀疑,因为我发誓我在使用 C++ 中的旧 C 源代码 时遇到过这样的情况,其中链接器错误只能通过“extern C”和库来解决 header 确实有

#ifdef __cplusplus
#extern "C"{
#endif
//......
#ifdef _cplusplus
}
#endif

在他们周围。

编辑:很抱歉不清楚,但我想问的是,是否只有在包含 C header 并与预先存在的 C 目标文件链接时才需要“extern C”?如果这是真的,(从下面的评论来看似乎是这样),为什么库头文件周围有“extern C”子句,为什么不能将它们包含并编译为 C++?

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