C语言 用typedef定义类型
typedef的使用形式如下:
typedef 标准类型名 别名;
例如:
typedef int INTEGER;
为标准类型int定义一个别名INTEGER,可以使用INTEGER来定义变量,如:
INTEGER a.b;
也可以为用户定义的结构体等自定义类型定义一个别名,例如:
typedef struct student
{
int no;
char name[10];
int score;
}STU;
这样就为一个结构体类型struct student定义了一个别名STU。程序中凡是需要定义student类型变量或数组时,都可以使用STU定义。如:
STU s1, s2;
定义两个student结构体型变量s1,s2。
STU s[10];
定义一个student结构体型数组s,数组s中包含10个元素。
说明:
(1)用typedef只是给已有类型增加一个别名,并不能创造出新的类型。就如同人一样,除大名外,可以再取一个小名、笔名、艺名等。不管使用哪个名,人还是这个人,并不能创造出另一个人来。
(2)typedef%#define的比较:typedef与#define有相似之处,都是用实际类型替代同义词。 但它们实际是不一样的,区别为typedef由编译器在编译时执行的;而define是由预处理器在编译预处理时处理的,而且只能作简单的字符串替换。
(3)因为程序中使用typede可以定义一个更利于记忆的类型的别名,从而可以使程序更具有可读性。
typedef除了可以为类型定义别名外,也可以为程序的书写带来其他便利。例如,需要定义大量的int型、长度为80的数据:
int a [10];
int b [80];
int c [10];
…
这样的定义非常繁琐,这时就可以使用typedef简化一下:
type int ARR[80];
ARR a.b.c;
这段代码的含义是,定义一个ARR为整型数组,其元素个数为80,之后用ARR定义数组a、b、c,这三个数组长度都为30。
typede他可以用在定义指针中,如:
int *pl,p2;
可能程序员本意是想定义两个int型指针,但实际定义出来则是是指针,而p2是普通的整型变量,可以使用typedef对整型指针进行定义:
typedef int* POINT;
POINT pl,p2,p3;
这种定义方式尤其在需要定义大量指针时,优点更加突出。
点击加载更多评论>>