1

由于typedef是 C 中的存储类,因此不能与static变量一起使用。例如typedef static int SI,SI a将不起作用。那么有没有其他方法可以将静态与 typedef 一起使用?

我已经知道这是可以做到#define SI static int的。

C 中的存储类

4

3 回答 3

6

你不能。

typedef没有声明变量的实例,它声明了一个类型(实际上是类型别名)。

static是您应用于实例的限定符,而不是类型

于 2012-07-29T19:09:38.813 回答
2

没门。static指定 C 标准所称的storage duration,它可以是静态的、自动的和分配的。typedef 只给现有类型一个新名称。由于存储持续时间不是类型名称的属性,因此您不能将持续时间包含在 typedef 中。

我不确定你的宏#define static int SI打算做什么。看起来很腥

于 2012-07-29T19:48:30.903 回答
0

我认为你误会了typedeftypedef用于引入类型别名,即新的类型名称,因此仅适用于类型信息。static,auto等都适用于特定变量。

于 2012-07-29T19:10:06.460 回答