除了可以使用C语言中的标准类型名和自己定义的各种类型名,C语言中还允许用typedef给一个已经存在的类型名重新命名。
例如:
typedef int HIcon;
其作用是给int类型重新起了一个名字“HIcon”,注意不是产生了一个新的类型,只是给int重新起名,二者代表的含义是一样的。例如:
程序中两个类型名均可使用,二者等价。
使用typedef给一个类型重新命名,一般情况下主要是为了让一个名字具有更确切的含义。例如:
显然使用age作为类型名比用int作为类型名更直观,看到这一类型名,我们第一感觉就是a是一个age类型的变量,其取值应该是一个人的正常的年龄范围,而不应是int类型的取值范围。
使用typedef还可以简化书写,例如在定义结构体变量时,一般struct不可以省略,但可以使用以下方法简化:
注意此时的student是一个类型名而不是变量名,在定义结构体的同时用typedef给该类型重新起了一个名字student,这样在定义变量时可以直接使用student作为类型名字,简化了书写。
使用typedef也可以定义数组类型,如:
typedef int A[10];
此时A不再是数组名而是一个类型名,代表的是可以保存10个int数据的这样的“一类”数组,例如:(www.xing528.com)
A a;
则a就是一个A类型的一个变量,它是一个真正的数组,可以存放10个int数据。
如有以下定义:
A b[5];
则说明b是一个有5个单元的一维数组,其每一个单元中可以存放一个A类型的数组,实质上b已经是一个二维数组。还记得指针一章中二维数组和指针的关系吗,当时我们正是这样来理解二维数组的。
用typedef声明一个新的类型名字,可以按以下步骤完成:
(1)先按变量定义的方法写出定义(如int a[10];);
(2)再在前边加上typedef(typedef int a[10];);
(3)将变量名替换成新的类型名(typedef int A[10];)。
一般用typedef定义的新的类型名用大写表示,以示和普通名字的区别。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。