C语言中提供的typedef语句,可以为系统已定义的简单类型(int 、char、float等)另起一个名字,也可以为自己定义的结构体、共用体、枚举等数据类型另起一个名字。
typedef语句定义格式
typedef 类型名 新类型名;
其中,“typedef”为类型定义语句的关键字,“类型名”是标准类型名或已定义的自定义类型名,“新类型名”为用户定义的与类型名等价的别名。
说明:
(1)仅给已有的类型名重新命名,并不产生新的数据类型,原有的类型名仍然可用,即“新类型名”只是原有类型名的一个“别名”。
(2)#define与typedef有相似之处,但二者有本质区别,例如:
#define INTEGER int
typedef int INTEGER
程序中,INTEGER都可以当成int使用。前者是预处理的宏代换,将程序中所有INTEGER先替换为int再进行编译,并没有产生新的名字;而后者是为int取了一个新的别名。
typedef语句举例
(1)
typedef int INTEGER
将int重命名为INTEGER,此后在程序中就可以用INTEGER作为类型名定义变量了。例如“INTEGER a,b;”与“int a,b;”等价。
(2)
typedef struct st_student STUDENT;