typedef介绍
-
typedef解释
1
2
3
4
5struct node{
int data;
struct node *link;
}//通常使用这种方法创建链表结点,但是每次使用"结点",我们都需要敲出"struct node"
//同样,使用自引用指针需要"struct node *",非常的麻烦,而且在一个c语言文件中不只有一类结点时非常混乱基于此我们引入"typedef",typedef 类似于重命名操作,和"define"非常相似
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef int elementType //这里我们使用 typedef 重命名 int 为 elementType
//typedef 的作用对象一般是"类型",
//类型包含系统自带的类型:char, short, int, long, long long, float, double等等
//也包含用户自定义的类型:结构体
//考虑链表结点的创建
struct node{
int data;
struct node *link;
}//这里的struct node就是用户自定义类型,因此可以使用typedef进行"改名"操作
typedef struct node{
int data;
struct node *link;//到这一步还未完成重命名操作,因此不可以用重命名之后的指针来替换struct node *
}Node,*Nodeptr;//一般把重命名的名字写在大括号后面。
//这里的操作可以解释为以下两条语句
typedef struct node Node;//Node 表示struct node
typedef struct node * Nodeptr;//Nodeptr 表示struct node *
//考虑如下代码
int *a, b;//这里的a是int*型的指针,而b是int整型
struct node *a, b;//这里a是struct node *型的指针,b却是自定义类型struct node;
Nodeptr a, b;//这里用Nodeptr表示struct node *,不是简单的替换关系,a和b都是struct node* 型的指针。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Soy's little car!