1

我发现 typedef 的语法与 extern 或 static 相似。那么 typedef 的作用域、寿命或存储类是什么?

4

2 回答 2

3

如果你仔细看,你会注意到当标准说:被称为“存储类说明符”时,它在存储类说明typedef符周围使用引号,这意味着为了方便起见,它在语法上只是一个“存储类说明符”。typedef

所以谈范围、类型等是没有意义的typedef

C99 §6.7.1存储类说明符第 3 节

说明typedef符被称为“存储类说明符”只是为了语法方便;将在 6.7.7 中讨论。6.2.2 和 6.2.4 讨论了各种链接和存储持续时间的含义。

于 2013-09-02T15:07:08.043 回答
1

typedef与 C 中的常规变量具有相同的范围。
对于typedef标头中的 a,它将在包含它的所有 C 文件中可见。
因此,typedefs的范围与任何其他标识符的范围相同。

于 2013-09-02T15:10:13.873 回答