举一个例子:
typedef struct EdgeNode
{
int adjvex;
EdgeType weight;
struct EdgeNode *next;
}EdgeNode;
C语言中表示类型的关键字struct 不能省略,所以在没有typedef 的情况下,结构体的类型名是struct EdgeNode,再用它去定义变量:
struct EdgeNode { int adjvex; EdgeType weight; struct EdgeNode *next; }; struct EdgeNode p;
typedef 的语法是 typedef 类型 类型别名;所以通过使用typedef 有简化结构体类型名的作用。即:
typedef struct EdgeNode { int adjvex; EdgeType weight; struct EdgeNode *next; }EdgeNode; EdgeNode p;
- 结构体内第三行有一个自身类型的指针,它不能用EdgeNode *next 来写,因为EdgeNode 是在结尾处才定义的 。
- 另外还可以定义成结构体类型的指针,和结构体类型的数组。这个另更。