typedef的作用是为已有的数据类型定义一个新名字,其主要目的是为了我们在使用时能用这个更加清晰简单的新名字,还有一个目的就是为了简化变量的声明。
下面的几段代码具有相同的功能,都是用于链表结构体节点的定义和声明:
第一种方式:
struct node
{
int data; // 节点的数据域
struct node *next; // 节点的指针域
};
struct node n; // 定义一个单个节点
第二种方式:
struct node
{
int data; // 节点的数据域
struct node *next; // 节点的指针域
};
typedef struct node NODE; // 把struct node型的结构体用别名NODE表示
NODE n; // 定义一个单个节点
第三种方式:
typedef struct node
{
int data; // 节点的数据域
struct node *next; // 节点的指针域
}NODE;
NODE n; // 定义一个单个节点
如果你需要对链表有一个充分的认识,我推荐这篇博客:
一步一步教你从零开始写C语言链表