struct node{
int data;
}a,b;
不加typedef时,相当于定义了结构体node和node的两个变量。
typedef struct node{
int data;
}a,b;
加上typedef时,除了定义了结构体node,又给该结构体起了别名a和b,因此a和b可以像类型一样用来定义结构体变量。另外,因为起了别名,所以不起结构体名也没关系,可以直接typedef struct。
因此,不加typedef时,在后续使用该结构体定义其他变量时需要加结构体名,例如 :
struct node c;
当加了typedef后,使用该结构体定义变量时,可以直接通过别名来定义,例如 :
a c;
一般使用typedef同时定义结构类型和结构指针类型,例如 :
typedef struct node{
int i;
}a,*b;
a c;
b p=&q;