为不完全结构和联合类型定义 typedef 名称通常很有用。如果您有一系列包含许多相互指向的指针的复杂数据结构,结构前面有一个 typedef 列表(可能在中央头文件中),则可以简化声明。
typedef struct item_tag Item; typedef union note_tag Note; typedef struct list_tag List; . . . struct item_tag { . . . }; . . . struct list_tag { struct list_tag { };
此外,对于其内容不应该用于程序其余部分的结构和联合,头文件可以声明不带该内容的标记。程序的其他部分可以使用指向不完全结构或联合的指针而不会出现任何问题,除非它们尝试使用它的任何成员。