- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言进阶-第五讲 数据结构与链表
第 五讲
第 五讲
数据结构与链表
数据结构与链表
凌 明
trio@
东南大学国家专用集成电路系统工程技术研究中心
目录
结构,联合,枚举
用结构构成链表
单向链表
双向链表
循环双向链表
窗口系统的数据结构与代码分析
窗口系统的代码调试
1 结构体
结构是由若干(可不同类型的)数据项组合而成的复合数据对象,这些数据
项称为结构的成分或成员。
(1) 字段
C 语言的结构还提供了一种定义字段的机制,使人在需要时能把几个结构成
员压缩到一个基本数据类型成员里存放,这可以看作是一种数据压缩表示方
式。
例16: struct pack {
unsigned a:2;
unsigned b:8;
unsigned c:6;
} pk1, pk2;
结构变量pk1或者pk2的三个成员将总共占用16位存储,其中a占用2 位,b 占
用8 位,c占用6 位。
(2)结构体内部的成员的对齐
在计算结构体长度(尤其是用sizeof)时,需要注意!
根据不同的编译器和处理器,结构体内部的成员有不同的对齐方式,这
会引起结构体长度的不确定性。
例17:
#include stdio.h
struct a{ char a1; char a2; char a3; }A;
struct b{ short a2; char a1; }B;
void main(void)
{
printf(“%d,%d,%d,%d”, sizeof(char), sizeof(short), sizeof(A), sizeof(B));
}
在Turbo C 2.0中结果都是
1,2,3,3
在VC6.0中是
1,2,3,4
字节对齐的细节和编译器实现相关,但一般而言,满足三个准则:
1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;
2) 结构体每个成员相对于结构首地址的偏移量(offset )都是成员大小的整数
倍,
如有需要编译器会在成员之间加上填充字节(internal adding );
3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会
在最末一个成员之后加上填充字节(trailing padding )。
对于上面的准则,有几点需要说明:
1)结构体某个成员相对于结构体首地址的偏移量可以通过宏offsetof()来获得,这
个宏也在stddef.h 中定义,如下:
#define offsetof(s,m) (size_t)(((s *)0)-m)
#define offsetof
您可能关注的文档
- 代沟现象及其对策探讨.pdf
- 影视受众环境和受众心理的比较分析_关于电影社会心理学的思考_黄怀璞.pdf
- 托福写作范文:出名运动员或娱乐明星是否应该挣那么多钱-智课教.pdf
- USTC算法习题课.pdf
- 从书法鉴赏的心理学意蕴谈文化人格塑造_关宁国.pdf
- 美的发生与人类审美活动发生的心理基础.pdf
- 去这些国家,免签落地签,比国内游便宜.pdf
- 现代阐释学视野下的文学文本翻译者的主体性问题.pdf
- 论朱光潜的移情观_陈琰.pdf
- 如何选择投资培训课程?.pdf
- 动力型锂电池高性能聚酰亚胺间位芳纶隔膜的性能、制备及应用研究.docx
- 2025版初中数学七年级下册苏科版上课课件12.pptx
- 基于多物理场耦合的轿车转向器深度仿真分析与创新应用.docx
- 2025年长春健康职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 论语班会PPT课件.pptx
- 课堂观察:开启小学新任英语教师专业成长之门.docx
- 双时态变量数据库数据处理技术:原理、挑战与创新应用.docx
- 尾叶桉人工林林下物种多样性的多维度解析与生态启示.docx
- 基于模糊层次分析法的数控滚齿机可靠性深度评估与优化策略研究.docx
- 基于期权的低碳供应链协调策略:理论、模型与实践.docx
文档评论(0)