- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 下面讨论指向结构数组的指针。 struct student { int num; char name[20]; char sex; }stu[20],*p; p=stu; 首先要注意,该指针变量的类型是数组元素的类型即相应的结构类型。 请问下面两个表达式 (++p)-num (p++)-num 的结果分别为何? 1001 ”LiuLi” ’F’ 1101 ”HeFei” ‘M’ 1201 ”WanLi” ’F’ stu[0] stu[1] stu[2] p 1101 1001 * 9.8 结构的存储分配 结构在内存中是如何存储的呢?其成员变量是如何安排空间的呢? 一般说来,编译器按照各个成员它们被声明的顺序一个接一个地给每个成员分配内存空间,第一个成员的地址和整个结构的地址相同。但是,为了提高运算效率,如有必要,编译器会自动进行结构成员变量的边界对齐。何谓边界对齐?由于时间关系,请同学们阅读教材。关于这方面更详细的讨论请查阅有关资料。 * 9.9 位段 9.9.1 为什么要引入位段 C语言提供了多种位操作,我们在4.3.1节已经作了介绍。位操作使得对字节或字按位存取成为可能。下面看一个例子: 设有五个数据的类型及其值域如下: b1 布尔值 b2 布尔值 b3 布尔值 value 取1~12之间的整数 index 取0~500之间的整数 1 1 1 4 9 * 可见,存储这五个数据共需16位。我们恰可定义一个整型变量: unsigned int intdata; 来存储这五个值。并可随意在intdata内部分配某些位用于存储这五个数据。下面就是一种分配: b1 b2 b3 value index 设0≤n≤15,下面的语句通过使用位操作把value域置为值n: * Intdata=(intdata~(0xf9))|((n0xf)9) 设intdata的原值为: 0x55BA n的值为: 0xB 11010 0X55BA 下面我们用竖式计算上述表达式: : 1110000111111111 ~(0xf9) 0100000110111010 value域:首先被清为零,其他域不变. |: 00000 (n0xf)9 0101011110111010 n=0xB 置入value域 * 上面表达式中intdata~(0xf9) 仅是为了确保值n一定在0~15之间。若已知0≤n≤15,则表达式 Intdata=(intdata~(0xf9))|((n0xf)9) 可简化为下式: intdata|=n9 欲从intdata中提取value域的值送入n中,可用如下语句实现: n=(intdata9)0xf; 可见位操作不能将某一特定的数据域作为一个数据单位来存取。位字段提供了一个存取位域的方法。 位段提供了一个存取位域的简便方法。 * 9.9.2 位段的声明和访问 位段(又称位结构)是一种特殊的结构,它以二进制位为单位分配成员空间。在需按位访问一个字节或字的某些位时, 位结构比按位运算更加方便。 位结构定义的一般形式为:? struct 位结构标记 {? 数据类型 成员名1: 整型常数1;? 数据类型 成员名2: 整型常数2;? ………… } 位结构变量;? 必须是int(unsigned int或signed int) 必须是非负的整数, 范围是0~15, 表示二进制位的个数 如果需要,成员名可以为空 * 下面是一个位段声明的例子: struct packed { unsigned a: 8; unsigned b: 4;
您可能关注的文档
最近下载
- 2025至2030年中国机器人关节模组行业市场竞争态势及前景战略研判报告.docx
- 员工冲突管理培训.pptx VIP
- 新课标人教版 宾语从句 复习课件.ppt VIP
- 厂务系统介绍.ppt VIP
- 2024年10月广东省高等教育自学考试00020高等数学(一)试卷及答案.pdf
- 英语人教版八年级下册unit5 setionB 课件.ppt VIP
- 人教版新目标八年级上册英语导学案(全册).pdf VIP
- 人教版九年级英语Unit 2 reading-The Spirit of Christmas.pptx VIP
- 丹毒中医护理方案ppt课件.pptx VIP
- 人教版九年级英语unit8全单元课件.ppt VIP
文档评论(0)