Why are structures typedef'ed to their own names? [duplicate]
在定义结构体时,会出现定义名字和结构体名字一样
struct LNode { //单链表存储结构表示
ElemType data;
struct LNode * next;
};
在c语言里面如果这样定义LNode,则每次定义LNode都要在前面加上struct
但是如果使用typedef,就相当于定义了一种类型
typedef struct LNode { //单链表存储结构表示
ElemType data;
struct LNode * next;
} LNode, * LinkList;
这样定义时可以直接像使用int一样使用LNode, 而定义的结构体的名字是LNode,而后面又定义了一个LNode,这样写可以
还可以直接去掉第一个LNode
typedef struct { //单链表存储结构表示
ElemType data;
struct LNode * next;
} LNode, * LinkList;
而在C++中没有这个问题,直接使用struct就可以了,不用typedef