关闭

关闭

封号提示

内容

首页 解析C语言结构体对齐(内存对齐问题).docx

解析C语言结构体对齐(内存对齐问题).docx

解析C语言结构体对齐(内存对齐问题).docx

上传者: june玉婷 2017-03-20 评分1 评论0 下载0 收藏0 阅读量189 暂无简介 简介 举报

简介:本文档为《解析C语言结构体对齐(内存对齐问题)docx》,可适用于IT/计算机领域,主题内容包含解析C语言结构体对齐(内存对齐问题)  结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础但一不小心就会弄错。写出一个struc符等。

解析 C 语言结构体对齐 ( 内存对齐问题 ) 结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础,但 一不小心就会弄错。写出一个 struct ,然后 sizeof ,你会不会经常对结果感到奇怪 ? sizeof 的结果往往都比你声明的变量总长度要大,这是怎么回事呢 ? 下面让我们一起来学 习一下相关的知识吧 ! 解析 C 语言结构体对齐 ( 内存对齐问题 ) 开始学的时候,也被此类问题困扰很久。其实相关的文章很多,感觉说清楚的不多。 结构体到底怎样对齐 ? 有人给对齐原则做过总结,具体在哪里看到现在已记不起来,这里引用一下前人的 ( 在没有 #pragmapack 宏的情况下 ) 原则 1 、数据成员对齐规则:结构 (struct 或联合 union) 的数据成员,第一个数据成 员放在 offset 0 的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍 开始 ( 比如 int 32 位机为 4 字节,则要从 4 的整数倍地址开始存储 ) 原则 2 、结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其 内部最大元素大小的整数倍地址开始存储。 (structa 里存有 structb b 里有 char int double 等元素,那 b 应该从 8 的整数倍开始存储。 ) 原则 3 、收尾工作:结构体的总大小,也就是 sizeof 的结果,必须是其内部最大成 员的整数倍,不足的要补齐。 这三个原则具体怎样理解呢 ? 我们看下面几个例子,通过实例来加深理解。

第1页

类似资料

该用户的其他资料

常见输液反应及护理.doc

[资料]口腔外科练习小结.doc

2010年4月12日上午福建公务员面试真题解析.doc

ps期末试题(笔试).doc

韩摄影小编教你,10种果汁饮料的厚味做法[最新].doc

职业精品

精彩专题

结婚彩礼真有那么重要吗?

原创于西周而后沿袭至今的彩礼,虽然被一部分家长奉为圭臬,但越来越多的年轻人对结婚必须要彩礼不以为然。彩礼引发的社会矛盾越来越受到关注,结婚是自己的事,如人饮水冷暖自知,至于要不要彩礼或者要多少彩礼,因人而异,因财力而已,不可一概而论。

用户评论

0/200
    暂无评论
上传我的资料

精选资料

热门资料排行换一换

  • 汉字与人体五官.pdf

  • 《电气装置安装工程电缆线路施工及…

  • 联想_企业文化宣传手册.doc

  • 汉字与动物世界.pdf

  • 一片叶子落下来.pdf

  • 【唐宋八大家散文】+广选+新注+…

  • 《梁启超史学论着四种》_岳麓书社…

  • 【唐宋八大家散文】+广选+新注+…

  • 【唐宋八大家散文】 广选 新注 …

  • 资料评价:

    / 1
    所需积分:0 立即下载

    意见
    反馈

    返回
    顶部