gpt4 book ai didi

c - 在 C 中对结构使用 extern

转载 作者:太空宇宙 更新时间:2023-11-04 03:22:52 25 4
gpt4 key购买 nike

为什么我们不能使用 extern 使结构在多个 .c 文件中可访问?

我知道建议是在 .h 文件中定义结构,并将该 .h 文件包含到我们使用该结构的每个 .c 文件中,但是为什么我们可以对变量使用 `extern 但它不适用于结构?

extern变量:

  1. .c文件中定义变量
  2. extern 变量在 .c 文件中我们希望使用它的地方
  3. 构建两个 .c 文件,一个是定义变量的,另一个是使用它的地方

但是结构是什么情况呢?

如果我哪里错了,请纠正我。

最佳答案

存储类说明符 extern 用于控制链接(参见 C11 draft 6.2.2),即哪些标识符引用相同的对象或函数。

但是,

struct 不是定义(即对象的存储保留或函数的函数体,参见 6.7.5),而是类型声明(参见 6.2.5.20 和 6.7。 2.1.6).


备注:这个区别在6.2.2.6中也有明确说明:

The following identifiers have no linkage: an identifier declared to be anything other than an object or a function; ...

关于c - 在 C 中对结构使用 extern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43829249/

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