C语言给结构体定义别名用typedef关键字操作,就两种情况:
-
给结构体起一个别名,如:
typedef
struct
LNode
{
int
data;
struct
LNode *next;
}LNode;
——这就为结构体LNode定义了一个别名LNode。以后写LNode x;就等价于写struct LNode x;了。
-
给结构体指针起一个别名,如:
typedef
struct
LNode
{
int
data;
struct
LNode *next;
}*LinkedList;
——这就为结构体指针LNode * 定义了一个别名LinkedList。以后写LinkedList pt;就等价于写struct LinkedList *pt;了。注意这里是用typedef给struct LNode{...} * 起一个别名LinkedList,而不是给struct LNode{...}起一个别名*LinkedList——后者是说不通的,起码的错误是标识符不可能以*开头!