typedef是C语言和数据结构,尤其是数据结构中比较常见的的关键字,typedef主要用来进行类型定义,即为类型重命名。typedef进行类型定义可以简单总结为以下几个方面:
一:使用typedef定义基本数据类型
typedef 使用比较多的是多一个数据类型进行命名,即类型重命名。在进行数据类型重命名时,typedef作用是进行简单的类型名替换,例如:
typedef int INT;
INT x, y;
将整形数据类型 int 使用typedef关键字定义为INT,就可以使用INT 进行数据定义,使用INT定义数据的用法和int 完全相同。
INT x, y; //等价于int x,y;
基本数据类型例如:int,float,double,char,enum…等等都可以使用typedef进行类型重命名。
二:使用typedef定义构造类型
typedef除了可以对基本数据类型进行重命名外还可以对相对较复杂的数据类型构造类型(例如:数组类型,结构体类型,共用体类型)进行类型定义。例如:定义一个类型名代表一个结构体类型。
typedef struct
{
int num; //学号
char Name[20];
int age;
char sex[5];
}Student;
将一个结构体定义为Student。就可以用Student定义结构体类型变量。
Student student1, student2;
但如果不使用typedef 关键字,则struct关键字后面必须跟上结构体类型名,结构体的定义为:
struct Student
{
int num; //学号
char Name[20];
int age;
char sex[5];
};
可以使用定义的结构体类型来定义变量。例如:
struct Student student1, student2; //struct 不能省略
当然也可以在结构体类型的同时定义结构体变量,定义共用体和枚举类型和定义结构体相同。
使用typedef定义数组类型
使用typedef定义数组类型和定义基本数据类型用法基本相同,例如:
typedef int Array[10];
Array a, b;
定义Array为整形数组,a,b为Array类型的数组。
三:使用typedef定义指针类型
例如:
typedef char*String;
String p1, p2, p[10];
定义String 为char型指针,然后就可以使用String定义变量,p1,p2为字符型指针,p为字符指针数组。
使用typedef定义类型,是对数据类型进行命名,或为已有的数据类型命名别名。然后就可以使用这个别名进行定义变量,使用typedef 类型定义变量与直接用数据类型定义变量效果相同。