第10章联合、枚举、类型.ppt

上传人:本田雅阁 文档编号:3418340 上传时间:2019-08-23 格式:PPT 页数:14 大小:164.54KB
返回 下载 相关 举报
第10章联合、枚举、类型.ppt_第1页
第1页 / 共14页
第10章联合、枚举、类型.ppt_第2页
第2页 / 共14页
第10章联合、枚举、类型.ppt_第3页
第3页 / 共14页
第10章联合、枚举、类型.ppt_第4页
第4页 / 共14页
第10章联合、枚举、类型.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《第10章联合、枚举、类型.ppt》由会员分享,可在线阅读,更多相关《第10章联合、枚举、类型.ppt(14页珍藏版)》请在三一文库上搜索。

1、第10章 联合、枚举、类型说明和位域,在C51语言中,除了数组和指针外,还定义了联合和枚举两种聚合数据类型,这是特殊形式的数据类型。下面分别进行讲解。,10.1 联合类型,联合类型,是指将不同的变量组织成一个整体的数据类型。其中的这些变量在内存中占用同一段存储单元,而在不同的时间保存不同的数据类型和不同长度的变量。因此,联合类型也称为共用体。,10.1.1 联合和联合变量的定义,联合的定义与结构十分相似,其形式如下: union 联合名 数据类型 成员名; 数据类型 成员名; . ;,10.1.2 联合变量成员的引用,联合体变量成员的引用方法与结构体完全相同。例如,对于前面定义的Test,其成

2、员引用为:Test.a、Test.b、Test.c。示例如下:,10.2 结构和联合的区别,结构和联合在很多方面都很相似,但它们之间有本质的区别。结构和联合的区别主要体现在如下几点: 对于由多个不同数据类型成员组成的结构变量和联合变量,在任何同一时刻,结构的所有成员都存在,而联合变量中只存放了一个被选中的成员。 结构变量的不同成员赋值是互不影响的,而对于联合变量的不同成员赋值,将会对其他成员重写,原来成员的值就不存在了。,10.3 枚举类型,枚举类型主要用于将变量的取值限定在一个有限的范围内的场合。枚举类型在定义中列举出所有可能的取值,被声明为该类型的变量取值不能超过定义的范围。枚举类型是一种

3、基本数据类型,而不是一种构造类型。例如,一个星期内只有七天、一年只有十二个月、一个班每周有六门课程等。如果把这些量说明为整型、字符型或其他类型显然是不妥当的。此时,采用枚举类型则不但可以简洁明了地表示其取值,又节省存储空间。,10.3.1 枚举的定义,在C51语言中,枚举类型定义的一般形式如下: enum 枚举名 标识符=整型常量, 标识符=整型常量, 枚举变量; 其中,enum为关键字,枚举名即所定义的枚举类型,标识符是枚举类型的取值范围,枚举变量是声明为该枚举类型的变量。每个枚举元素后的结束符是“,”,而不是“;”,并且最后一个元素后的结束符可以省略不写。,10.3.2 枚举变量的声明,在

4、C51语言中,枚举变量的声明可以采用3种方式。这里假设有变量a、b、c被声明为上面定义的weekday类型,分别采用3种声明方式如下。,10.3.3 枚举类型变量的赋值,枚举类型在定义时如果没有初始化,即省去“=整型常数”,枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2。如果枚举中的某元素被赋值后,其后成员按依次加1的规则,确定其值。例如:在weekday中,依次Monday值为0,Tuesday值为1,Sunday值为6。,10.4 类型说明,类型说明是指由用户自己定义类型说明符,也就是说允许由用户为数据类型取新类型名。类型说明的一般形式如下: typedef 原类

5、型名 新类型名; 其中typedef为类型定义符,原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。例如,有整型变量a、b,其声明如下: int a,b; 其中int是整型变量的类型说明符。int的完整写法为integer。为了增加程序的可读性,可把整型声明符用typedef重新定义如下: typedef int INTEGER;,10.5 位域,“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位来表示。 因为有些信息在存储时,只需占几个或一个二进制位,而并不需要占用一

6、个完整的字节。例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可。因此,采用位域可以节省存储空间,并使处理简便。位域数据结构,也常称为“位段”。,10.5.1 位域的定义和位域变量的声明,位域定义与结构定义相似,其一般形式如下: struct 位域结构名 类型说明符 位域名:位域长度; ; 其中,struct为关键字,在位域结构中说明了位域名的类型以及位域的长度。示例如下: struct btest int a:4; int b:1; int c:3; ;,10.5.2 位域变量的使用,位域变量的位域名引用的一般形式如下: 位域变量名.位域名 位域允许用各种格式输出,也可以使用指针。位域变量在程序中的使用,示例如下: (详细内容请参照本书),10.6 小结,本章主要介绍了几种特性形式的聚合数据类型,包括联合类型、枚举类型、类型说明以及位域。这些特殊的数据类型是对基本数据类型的有效扩充。灵活运用这些特殊数据类型,可以方便单片机的程序设计。因此,熟练掌握本章内容是单片机程序设计的基础。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1