免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: wangjc_strive
打印 上一主题 下一主题

[C] 有关内存对齐的小问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-07-08 14:02 |只看该作者
回复 7# pmerofc


    如果加上按字节对齐属性 就是 4+ 1+ 12=17
默认的就是4 + 4 +12 = 20

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
12 [报告]
发表于 2013-07-08 15:54 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
13 [报告]
发表于 2013-07-08 17:21 |只看该作者
wangjc_strive 发表于 2013-07-07 20:55
一、结构体变量中成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)
二、结构体大小必须最宽基本类型成员大小的整数倍



注意第二条的“基本类型”,数组不是基本类型,要按照数组所对应的基本类型(这里是int)来算。

4 + 1 + 3(对齐int) + 4*3 = 20

论坛徽章:
0
14 [报告]
发表于 2013-07-16 11:33 |只看该作者
明显是 20好么  float4个  char虽然只有一个 为了保持字节对齐  补齐三个 也算4个   后面的int数组 12个 一共是20   

论坛徽章:
1
水瓶座
日期:2013-09-28 21:40:25
15 [报告]
发表于 2013-07-16 13:14 |只看该作者
其实吧,我觉得这么做完全是为了考虑CPU对界访问的性能高于不对界访问。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP