- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 .直
您可能关注的文档
- (寻宝)广东培正学院经济学系2010年班级拓展策划书.doc
- !二级C语言笔试近期真题(分章节作业).doc
- (必填)民用建筑项目节能登记表1.doc
- (2009年)“亲子教育心怀感恩,科技文化服务乡村”赴南伏流暑期社会实践队总结.doc
- ((人教版))[[初三化学课件]]初三化学《化学元素与人体健康》PPT课件.ppt
- ((苏科版))[[初三物理试题]]苏科九年级物理第十三章《电路初探》单元习题.doc
- (溶液组成的定量表示).doc
- (语文S版)二年级语文上册课件_保护庄稼好卫兵_11.ppt
- (杨炯勇)提高长距离输送管道钢管弧度的测绘效率.doc
- -ACCA考试考前准备.doc
- 2024-2025学年高一数学同步课件(人教A版2019)3.1 函数的概念及其表示(十一大题型).pptx
- 2024-2025学年高二数学同步课件(选择性必修第一册人教A版2019)2.3 直线的交点坐标与距离公式(九大题型).pptx
- 医药生物行业专题:TSLP:哮喘领域新星,多适应症拓展,潜力巨大,国内BD火热.pdf
- 2024-2025学年高一数学同步课件(人教A版2019)5.2.1 三角函数的概念(五大题型).pptx
- 正餐消费决策链研究报告2025-红餐产业研究院.pdf
- 2024-2025学年高一数学同步课件(人教A版2019)4.3 对数(九大题型).pptx
- 2024-2025学年高一数学同步课件(人教A版2019)4.4 对数函数(十三大题型).pptx
- 2024-2025学年高一数学同步课件(人教A版2019)4.2 指数函数(十大题型).pptx
- 北交所行业主题报告:人形机器人有望迎来量产元年,北交所零部件企业发展前景广阔.pdf
- 医药生物行业2025年年度策略:政策拐点愈发明确,布局创新药+医疗设备+服务.pdf
最近下载
- 全脑理论知识概要-培训课件.ppt VIP
- 智慧健康养老服务与管理专业《老年用药护理》课程标准.docx VIP
- 春季开学教师大会主持词.docx VIP
- JTS 180-3-2018 -海轮航道通航标准.pdf
- _地质灾害专群结合监测预警技术指南(试行).pdf VIP
- 新课标理念下初中语文作业的设计与实施.pdf VIP
- 新高考数学大一轮复习讲义之方法技巧专题18三角恒等变换(原卷版+解析).docx VIP
- 开工安全春节节后复工安全宣传教育ppt课件.pptx
- 浙江省杭州市拱墅区2023-2024学年七年级上学期数学期末学情调研试卷.docx VIP
- 第一单元 整理与收纳 教案(共2课时) 新苏教版五年级劳动与技术下册.docx
文档评论(0)