typedef 声明结构体
typedef struct tagMyStruct
{
int iNum;
long lLength;
}MyStruct;
这语句实际上完成两个操作:
1 . 定义一个新的结构类型
struct tagMyStruct{
int iNum;
long lLength;
};
分析:tagMyStruct
称为“tag”,即“标签”,实际上是一个临时名字,struct关键字和tagMyStruct
一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。
我们可以用struct tagMyStruct varName
来定义变量,但要注意,使用tagMyStruct varName
来定义变量是不对的,因为struct
和tagMyStruct
合在一起才能表示一个结构类型。
2 . typedef为这个新的结构起了一个名字,叫MyStruct。在结构体前面加上 typedef
相当于typedef struct tagMyStruct MyStruct
;因此,MyStruct
实际上相当于struct tagMyStruct
,我们可以使用MyStruct varName
来定义变量。