网站大量收购闲置独家精品文档,联系QQ:2885784924
  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
09单片机

第9 章 C51 的聚合类型 聚合类型,形象地说就是不同数据类型共同组成的数据类型。C51 语言中的结构是一个典 型的聚合类型。除此之外,C51 语言中还提供了联合和枚举等聚合类型。本章将重点介绍联合 和枚举的使用,同时还介绍了C51 语言中的类型声明和位域。通过本章的学习,读者应该实现 如下几个目标。 掌握联合类型的使用及其与结构的区别。 掌握枚举类型的使用。 了解类型声明的使用。 了解位域的使用。 9.1 联合类型 联合类型也称为共用体,有点类似于一个事物的多面性,在不同的时刻呈现不同的状态, 这里是不同的数据类型。严格来说,联合类型是指将不同类型的变量组织成一个整体的数据类 型。这些不同类型的变量在单片机内存中占用同一段存储单元,为了不互相影响,其在不同的 时间保存不同的数据类型和不同长度的变量。 9.1.1 联合的定义 联合类型也是用户自定义的数据类型,其定义的方式与结构十分相似,一般形式如下: union 联合名 { 数据类型 成员名; 数据类型 成员名; ... }; 其中,union 是联合类型的关键字,联合名为用户自定义的标识符,数据类型可以为任意 的C51 数据类型,成员名为联合体内的组成成员。 9.1.2 联合变量的声明 在定义了联合类型后,还需要使用该联合类型来声明联合变量。程序中通过联合变量来使 用。联合变量的声明有三种方法。 1.先定义联合,再声明联合变量 这种方法是最基本的联合变量声明方法,完全符合联合类型和联合变量的逻辑顺序,一般 形式如下: union 联合名 联合变量; 这里,union 为C51 的关键字,联合名为用户自定义的联合类型名称,联合变量为程序中 使用的变量,可以同时声明多个联合变量。示例如下: union char_int 21 天学通51 单片机开发(第2 版) { char ch; int i; }; union char_int a; 其中,联合变量a 中,字符型成员ch 和整型成员i 所占的内存位置一致,共用同一个内存 位置。如果联合变量中成员变量的大小不一致,则在编译程序的时候,自动取其中最大的长度 为整个联合变量的长度。示例如下: union ThreeInOne { int a ; char b; float c; }; union ThreeInOne Test; 在本例中,定义了一个联合类型ThreeInOne ,并声明了一个联合变量Test 。其中最长的成 员是浮点型的c ,因此联合变量的长度与浮点型c 一致,共占用4 个字节。 2 .定义联合时声明联合变量 在C51 语言中,允许在定义联合的同时声明联合变量。这种声明方法的一般形式如下: union 联合名 { 数据类型 成员名; 数据类型 成员名; ... }联合变量; 其中,最后的联合变量即程序中所采用的结构变量名称。示例如下: union ThreeInOne { int a ; char b; float c; }Test; 本例中,定义联合类型ThreeInOne 的同时声明了联合变量Test 。该联合类型由整型a、字 符型b 和浮点型c 共三个成员构成。 在C51 语言中,在定义联合的同时可以声明多个联合变量,示例如下: union ThreeInOne { int a ; char b; float c; }Test1,Test2,Test3; 其中,在定义联合ThreeInOne 的同时,声明了Test1、Test2 和Test3 共三个联合变量。 3 .直

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档