C语言允许用typedef说明一种新的类型名,或对已有基本数据类型重新命名。
1.将已有基本数据类型重新命名的一般格式为:
typedef 基本类型名 新类型名;
如:
typedef int NEW_INT; //将整型变量重新命名为NEW_INT
NEW_INT i, j; //用NEW_INT定义变量i,j
使用typedef说明后,NEW_INT就成为int的同义词。但重命名后的NEW_INT只能用来定义int
型变量,而不能取代int的地位,如,"long NEW_INT i, j;"是非法的。
若想用"新类型名"代表指针类型名,只需说明时在"新类型名"前标注" * "即可。
如:
typedef char *CP; //将字符型指针char *重命名为CP
CP p; //用CP定义一个指针变量p
//此时CP p;等价于char *p;
2.用typedef说明一个用户自定义新类型
可用typedef说明一个结构体、共用体等用户自定义类型,如:
typedef struct //使用typedef将用户自定义的结构体类型命名为STD
{
char name[12];
char sex;
float sc[4];
}STD;
STD std,pers[3],*pstd; //使用STD定义结构体变量std、pers[3]、*pstd
区分:
"struct 结构体名 结构体变量;"
"新类型名 结构体变量;" //typedef说明后,就无需再使用结构体类型标识符 "struct 结构体名",而是直接用新类型名代替。