首页 理论教育C语言程序设计基础:typedef简单应用

C语言程序设计基础:typedef简单应用

【摘要】:可以使用typedef为结构体数据类型取一个方便程序中使用的别名。用typedef构造指定行数和列数的二维数组类型。用typedef构造指针数据类型。

C语言中提供了一个关键字typedef,使用typedef可以给已有的数据类型声明一个别名,也可以根据需要构造复杂的数据类型。

1.使用typedef为数据类型取别名

声明别名的一般形式为:

typedef数据类型别名;

例如,typedef int INTEGER;就为系统内置数据整型(int)类型取了另外一个名字INTEGER。此后,int j,k;和INTEGER j,k;的意义相同。

在定义结构体类型时,为了描述结构体类型对应的意义,常常使用比较长的数据类型名。可以使用typedef为结构体数据类型取一个方便程序中使用的别名。例如,可以通过如下C语句为前面定义好的结构体数据类型struct student取别名:

typedef struct student STU;

对于结构体这种自定义类型,还可以在定义数据类型的时候就同时为其取别名。例如,下面的代码段就在定义结构体数据类型struct student的同时为其取别名STU:

结构体类型struct student取别名后,下面两种定义结构体变量的意义相同:(www.chuimin.cn)

STU stu1,stu2,stu3;

struct student stu1,stu2,stu3;

typedef与#define有相似的地方,但二者是不同的,前者是由编译器在编译时处理的;后者是由编译器在编译预处理时处理的,而且只能作简单的字符串替换。

2.使用typedef构造复杂数据类型

使用typedef还可以构造复杂结构的数据类型,由于不同的应用环境对复杂结构数据的要求不同,所以使用typedef关键字构造复杂结构数据没有统一的形式,在应用程序中应该根据需要构造合适形式的数据类型。下面用几个示例演示复杂结构数据类型的构造方法。

【例10.1】 用typedef构造指定长度的字符串(一维数组)数据类型。

【例10.2】 用typedef构造指定行数和列数的二维数组类型。

【例10.3】 用typedef构造指针数据类型。