[英]Typedef struct vs struct? |Definition difference|
以下块在main()
和每个函数之前(全局范围)
第一块:
struct flight {
int number;
int capacity;
int passengers;
};
与此相比,您可以创建数组、指针、变量,而不是编写} var;
(它只定义了这个自定义数据类型的一个变量 (struct flight ))
第二块:
typedef struct flight {
int number;
int capacity;
int passengers;
} flight;
声明这会创建一个数据类型Flight,而不必一直编写struct flight
我的问题是为什么 typedef 需要在块的末尾再次写入飞行?
这有点令人困惑(它看起来只是该数据类型的变量)
我的问题是为什么 typedef 需要在块的末尾再次写入飞行?
当您声明:
typedef struct flight{
int number;
int capacity;
int passengers;
}flight;
你实际上声明了两件事:
struct flight
flight
的struct flight
。 带有typedef
的类型别名出现在声明末尾的原因与任何普通声明一样,是因为由于历史原因, typedef
与存储类说明符(如static
或auto
)放在相同的说明符类别中。
请注意,您可以声明:
typedef struct {
int number;
int capacity;
int passengers;
}flight;
如果您打算仅使用类型标识符flight
则不要使用标签名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.