C语言 typedef 简介
typedef工具是一种高级数据特性,它能为某一类型创建自己的名字。在使用typedef时,要记住它并不创造新的类型;它只是创建便于使用的标签。
1.typedef与#define相似,但有三个不同之处:
(1)与#define不同,typedef给出的符号名称仅限于对类型,而不是对值;
(2)typedef的解释由编译器,而不是预处理执行;
(3)范围有限,但在其受限范围内,typedef比#define灵活。
2.typedef定义类型
typedef unsigned char BYTE;
使用BYTE来替代unsigned char。通常这些定义使用大写字母,以提醒用户这个类型
名称实际上是一个符号缩写。不过,也可以使用小写字母。
下面就可以用BYTE来定义变量了:
BYTE x,y[10],*z;//定义字符型变量
3.typedef也有#define实现不了的功能
如下例所示:
typedef char * STRING;//STRING为char指针标识符
因此
STRING name,sign;
意思为:
char *name,*sign;//name和sign都定义成了char指针
但是,假设用#define定义
#define STRING char *
那么:
STRING name,sign;
被翻译成
char *name,sign;//只有name被定义成了char指针
4.定义结构
typedef struct complex{
float real;
float imag;
}COMPLEX;
这样就可以使用COMPLEX来代替struct complex来表示该结构,
即COMPLEX x与struct complex x等价。