【发布时间】:2020-05-25 09:05:18
【问题描述】:
我最近发现,在 C 中定义 typedef 结构时,可以在变量前面加上 *。
这是我正在谈论的一个例子(*book 就是这种情况):
typedef struct item {
int id;
float price;
} *book, pencil;
我真的不明白这是怎么回事。
这 3 个变量在数据类型方面是否等效?
struct item *foo;
book bar;
pencil *foobar;
【问题讨论】:
-
第一个与第三个相同,但由于您创建了
typedef,因此毫无意义。第二个与第三个相同,但将指针隐藏在typedef后面被认为是不明智的。第三种是通常的方式。 -
你的title应该是
Preceding the name of a typedef with *,(book不是变量)。
标签: c variables struct typedef