结构体的常规定义与创建
无 TYPEDEF 的声明方式
首先常规结构体的定义,你肯定已经十分清楚:
struct Person{
int age;
string name;
};
这里Person是你声明的这个结构体的名字,即一种类型,如同int之类的。
如果你想声明几个Person的变量的话有两种方式:
// 1. 在声明之后立刻创建
struct Person {
int age;
string name;
} person_a, person_b;
// 这里 person_a 都是实际的 variables 啦!
// 2. 随后需要的时候再创建,给出C中的定义方法
struct Person person_c;
有 TYPEDEF 的声明方式
在C中,创建结构体都要在前面加多一个struct,有点累赘。当然,有简单的办法,就是加上一个typedef。
typedef struct Person {
int i;
string name;
} Ren;
// 这里 Ren 不是 variable, 而是一个类型名
// 通过这种方式声明的结构体就可以较为简洁地创建变量
Ren person_d;
typedef 并没有实际参与到结构体的定义,而是仅仅给你创建的结构体起了个外号。在这个例子中 struct Person 的外号就是 Ren