typedef是用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字.
用typedef定义类型的方法
① 先按定义变量的方法写出定义体(如:int i)。
② 将变量名换成新类型名(例如:将i换成COUNT)。
③ 在最前面加typedef. (例如:typedef int COUNT)。
④ 然后可以用新类型名去定义变量。
说明:
(1)用typedef可以声明各种类型名,但不能用来定义变量。
(2) 用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。
(3) 当不同源文件中用到同一类型数据时,常用typedef声明一些数据类型,把它们单独放在一个文件中,然后在需要用到它们的文件中用#include命令把它们包含进来。
(4) 使用typedef有利于程序的通用与移植。
(5) typedef与#define有相似之处,例如:typedef int COUNT;#define COUNT int的作用都是用COUNT代表int。但事实上,它们二者是不同的。#define是在预编译时处
的,它只能作简单的字符串替换,而typedef是在编译时处理的。实际上它并不是作简单的字符串替换,而是采用如同定义变量的方法那样来声明一个类型.
结构体与typedef
struct{
int x;
int y;
} test1;
定义了结构体test1, test1.x 和test1.y 可以在语句里用了。
struct test{
int x;
int y;
} test1;
定义了结构体test1,test1.x 和 test1.y 可以在语句里用了。与 前面相比,省写 了 test。
typedef struct test{
int x;
int y;
} text1,text2;
定义了结构体的(类型)别名叫text1 或叫text2。真正在语句里用,还要写:text1 te; 然后才可以用 te.x te.y
typedef struct{
int x;
int y;
}test1;
同上一个一样,还要写: test1 my_st; 才能用 my_st.x 和 my_st.y