首页 百科知识 定义类型新名字

定义类型新名字

时间:2022-10-16 百科知识 版权反馈
【摘要】:将已定义的结构类型struct bir th_date的名字改为bir thday。当要定义一个类型为struct birth_date,且包含有100个元素的结构数组时,可表示为:使用record代表包含银行储户的账号、储蓄类型、姓名和存款余额四个成员的结构类型,oldcustomer和newcustomer是具有该结构类型的结构变量,acct是包含有500个结构类型元素的数组。需要注意的是,typedef没有创建一种新的数据类型,它仅仅为现有的类型取个新的名字,因此,由定义名说明的变量的性质,与原有类型说明的变量的性质是相同的。

8.4 定义类型新名字——typedef

C语言允许用户使用关键字typedef为已有的类型定义类型新的类型名,例如:

  typedef int integer;

使得integer代表标准类型int,即integer可以作为整型的类型名。可进行下面的变量说明:

  integer x,y,width, longth;

  integer a[10],*p[ ];

定义类型新的类型名的一般形式为:

  typedef 类型 定义名;

其中,类型是任一种合法的数据类型,定义名就是该类型新的类型名。例如:

  typedef char chr;

也可以用typedef为结构或联合等复杂的数据类型建立新的类型名,例如:

  struct birth_date

  {

img544

将已定义的结构类型struct bir th_date的名字改为bir thday。利用bir thday,则可以定义该结构类型的变量。当要定义一个类型为struct birth_date,且包含有100个元素的结构数组时,可表示为:

  birthday student[100];

上述的定义方式也可简写为:

img545

程序段:

img546

使用record代表包含银行储户的账号、储蓄类型、姓名和存款余额四个成员的结构类型,oldcustomer和newcustomer是具有该结构类型的结构变量,acct是包含有500个结构类型元素的数组。

需要注意的是,typedef没有创建一种新的数据类型,它仅仅为现有的类型取个新的名字,因此,由定义名说明的变量的性质,与原有类型说明的变量的性质是相同的。

C语言提供的五种自定义的构造数据类型小结为:

1.数组处理的是同种类型的数据。

2.结构是不同类型(或相同类型)数据的组合,也可称为不同类型数据的集成体。

3.位域是允许按位访问结构成员的一种特殊结构。

4.联合是两个或两个以上不同类型的成员分量共用同一内存空间的共用体。

5.枚举是一个自定义的有序标识符表。

关键字typedef不能定义一种新的数据类型,但可以为已存在的数据类型产生一个新的定义名。

常见的编程错误8.2

●将结构或联合类型的变量直接作为表达式中的操作数。

●对联合变量存储和访问的不一致性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈