首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > C加加 > 复习资料 > 正文

2010全国计算机等考二级C++:字节对齐问题

来源:考试吧Exam8.com) 2010-8-20 15:19:42 考试吧:中国教育培训第一门户 模拟考场
2010全国计算机等考二级C++:字节对齐问题。

  问题:

  A) sizeof(TestStruct5)=?

  B) TestStruct5的 c 后面空了几个字节接着是 d ?

  TestStruct4中,成员 a 是 1字节,默认按 1字节对齐,指定对齐参数为 8,这两个值中取 1,a 按 1字节对齐;成员 b 是 4个字节,默认是按 4字节对齐,这时就按 4字节对齐,所以sizeof(TestStruct4)应该为 8。

  TestStruct5 中,c 和 TestStruct4 中的 a 一样,按 1字节对齐,而 d 是个结构,它是 8个字节,它按什么对齐呢?对于结构来说,它的默认对齐方式就是它的所有成员使用的对齐参数中最大的一个, TestStruct4的就是 4。所以,成员 d 就是按 4字节对齐。成员 e 是 8个字节,它是默认按 8字节对齐,和指定的一样,以它对到 8字节的边界上。这时,已经使用了12个字节了,所以又添加了 4个字节的空,从第 16个字节开始放置成员 e。这时,长度为24,已经可以被 8(成员 e 按 8字节对齐)整除。这样,一共使用了 24个字节。内存布局如下(*表示空闲内存,1表示使用内存,单位为 1byete) :

  a b

  TestStruct4的内存布局:1***, 1111

  c TestStruct4.a TestStruct4.b d

  TestStruct5的内存布局: 1***, 1***, 1111, ****, 11111111

  这里有三点很重要:

  首先,每个成员分别按自己的方式对齐,并能最小化长度。

  其次,复杂类型(如结构)的默认对齐方式是它最长的成员的对齐方式,这样在成员是复杂类型时,可以最小化长度。

  然后,对齐后的长度必须是成员中最大的对齐参数的整数倍,这样在处理数组时可以保证每一项都边界对齐。

  补充一下:

  对于数组,比如:char a[3],它的对齐方式和分别写 3个 char 是一样的,也就是说它还是按 1 个字节对齐。如果写:typedef char Array3[3];Array3 这种类型的对齐方式还是按 1 个字节对齐,而不是按它的长度。

  相关推荐:2010年9月计算机等级考试精华备考资料汇总
       计算机等级考试二级VB上机试题及答案汇总
       计算机等级考试二级VB模拟试题及答案汇总
文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。