结构和联合的 Typedef

你可以为 struct 指定别名:

typedef struct Person {
    char name[32];
    int age;
} Person;

Person person;

与传统的声明结构体的方式相比,程序员每次声明该结构的实例时都不需要使用 struct

请注意,名称 Person(与 struct Person 相对)直到最后一个分号才定义。因此,对于需要包含指向相同结构类型的指针的链表和树结构,必须使用以下任一方法:

typedef struct Person {
    char name[32];
    int age;
    struct Person *next;
} Person;

要么:

typedef struct Person Person;

struct Person {
    char name[32];
    int age;
    Person *next;
};

typedef 用于 union 类型是非常相似的。

typedef union Float Float;

union Float
{
    float f;
    char  b[sizeof(float)];
};

类似于此的结构可用于分析构成 float 值的字节。