- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 位域,联合,枚举,定义类型及预处理功能 制作人 计科一班 王建政 目录 1.1位域 位域是结构成员的特殊形式,它需要定义位的长度,它是整型数存储区中相连的位的集合。通过位域可以方便的用成员访问小于一个字节的存储区。 它的一般形式为: struct 结构名 { 类型 变量名 1:长度; 类型 变量名 1:长度; } 2.1联合 联合 应用举例 联合 应用举例 3.1枚举 枚举 3.2定义类型名typedef 4预处理功能 1.简单的字符串替换 2.带参宏定义及宏调用 程序举例 宏的撤销 包含文件#include 包含文件 谢谢观赏 Page ? * 位域及结构嵌套 联合 枚举 定义类型名 预处理功能 1.1 位域 其中,冒号:表示使用的是位域,其后的长度表示需要分配的存储单元位数。 域变量必须定义为int或unsigned. 位域变量有某些限制。比如,不能去一个位域变量的地址;不允许超越整型量边界。例: 下面定义非法: struct flg { unsigned flag1:8; unsigned flag2:12; }fcode; 这里,flag1和flag2的位数超越整型(16位)的边界。应该写成; struct flg { unsigned flag1:8; unsigned: 0; unsigned flag2:12; }fcode; 这里,第二个成员省略位域变量名,其长度说明为0.表示该位域变量后面定义的位域从下一个字边界开始存放。 1.2结构嵌套 woker name[10] age wage payday 结构成员不仅可以是位数可变的位域变量,而且可以是另一个结构类型变量。这种情况被称为嵌套式结构。例如: 下面的结构变量payday就是嵌套在结构person内的一个嵌套式结构变量。 struct date { int month; int day; int year; }; struct person { char name[10]; int age; float wage; struct date payday; }woker; month day year 成员变量 成员变量 成员变量 结构成员变量 子成员 子成员 子成员 1.2结构嵌套 如果要给woker的各成员赋值,可以使用下面程序段: 显然对每个结构成员的访问,在结构嵌套情况下,必须从最外到最内层逐个列出结构成员变量名。 在定义时可以用同样的方法赋初值。 woker={Li_ming,34,350,11,1,1993}; woker.payday.year=1993 2.1联合 联合是一种与结构相类似的构造类型,联合与结构一样,可以包括不同类型和长度的数据。联合与结构的主要区别在于, 联合类型变量所占用空间不是各个成员所需空间字节数的总和,而是联合成员中需要空间最大的成员的字节数。 定义联合类型的一般形式: union 联合名 { 类型 变量名; 类型 变量名; }联合变量; 例如,定义一个名为data的联合,并说明value为联合变量,这个变量在不同时刻,可以是一个字符(1byte),一个短整型(2byte),一个长整型(4byte)。定义如下 union data { char ch; short num; long lnum; }value; value ch num lnum 内存区域 共享起始位置 共享存储空间 对于上述定义,当编译程序编译时看到关键字union,它扫视联合定义中的成员类型表,找出要求占用的最大存储空间的一个成员,并以这个成员所需的存储空间作为分配给联合变量的存储空间,以保证能存放任何一个成员数据。 为了访问联合的成员,可以使用与结构相同的方法,即使用句号运算符“.或箭头“-。如果直接对联合变量进行操作,使用“。”,若联合变量通过一个指针来访问,使用箭头运算符。例如: value.num=100; 此时,联合变量为一个整型变量。 value.ch=a;此时,联合变量为一个字符变量。 由于value是一个共享变量。因此在变成是必须记住在联合中当前存储的是什么样的数据类型。如果要进行数值计算,那么用法要前后一致,即取回的类型一定是最近才存放的类型。如果以一种类型存放,而以另一种类型取出,
您可能关注的文档
- 普里姆与克鲁斯卡尔算法.doc
- CNKI系列数据库和使用介绍-天津大学.ppt
- Core Graphics框架 一个让程序猿成为视觉设计师框架.docx
- CorelDRAW 图形对图像编辑.ppt
- Couette-Taylor流三模系统的混沌行为和其仿真.pdf
- CPP手机定位市场应用分析.pdf
- 歧口凹陷重要断裂构造与构造带特征研究.pdf
- CPU体系结构CISC及RISC.pdf
- Criteria及MyBatis学习总结.pptx
- CRP及hs-CRP,一种蛋白的“分身术”.pdf
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
最近下载
- 工会专业知识考试题库.pdf VIP
- 岩沥青SBS复合改性沥青混合料设计与施工技术规范.docx VIP
- 2023年河南省对口升学市场营销类基础课高考试卷.pdf VIP
- 2024年版《登泰山记》ppt课件:泰山的历史沿革2篇.pptx
- 2024年12月英语四级真题及答案(共三套).pdf
- 2024年甘肃省庆阳市数据局下属事业单位选调工作人员笔试模拟试题及答案解析.docx VIP
- 光催化原理(经典)PPT课件.pptx VIP
- 20以内加减法练习100题(50套) - 可直接打印.pdf VIP
- 虾皮零基础教程 粉丝运营.pdf VIP
- 2023年东风日产汽车知识考试历年真题荟萃版附带答案.docx
文档评论(0)