gpt4 book ai didi

c++ - #ifdef __cplusplus extern "C"{ #endif 的最佳位置在哪里

转载 作者:可可西里 更新时间:2023-11-01 15:37:38 35 4
gpt4 key购买 nike

我想知道放在哪里比较好

#ifdef __cplusplus
extern "C" {
#endif

在 C 头文件中。

在所有其他包含的开头或之后。为什么?

最佳答案

对此没有严格的规定,但要注意以下几点。

  1. 一般原则是每个头文件都自行处理(并且是自给自足的)。因此,根据这个原则,不需要将头文件包装在 extern“C”中,因为头文件中会有一个 extern“C”(如果需要的话)。因此,在当前文件中,您可以将它放在其他包含文件之后。
  2. 但是如果你确实有一大堆标题,你不想添加一个外部“C”,并且想通过一个单独的包含来提供,无论如何,继续把它们包装起来在文件宽外部“C”中。

只知道 extern "C"背后的想法是它使编译器生成 C 友好链接。否则,使用 C++ 编译器编译的代码会在使用 C 编译器编译的存档中寻找要链接的错位名称,但找不到它们。

关于c++ - #ifdef __cplusplus extern "C"{ #endif 的最佳位置在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16087451/

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