从上面的例子可以看出,如果在程序中需要多处定义struct {int x; int y;}类型的变量,就必须多次输入“struct {int x; int y;}”这一类型名称,况且,如果在结构体中有某个成员是struct {int x; int y;}类型的,还会使得定义变得非常繁杂而且容易出错。为了输入程序的方便,同时为了增强程序的可读性,我们可以把struct {int x; int y;}这一数据类型定义为标识符“point”,那么上面的程序就会变得更容易理解:
typedef struct {int x; int y;} point;
point var_1; // 定义了变量var_1
point array_1 [10]; // 定义了数组array_1
struct {point part1; int part2;} cplx; // 定义了复杂类型变量cplx
需要说明的是,我们还可以使用下面的方法来定义结构体变量:
struct t_point {
int x; int y;}; // 注意,这里最后一个分号不能省略