关闭

关闭

封号提示

内容

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

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

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

上传者: june玉婷 2017-03-20 评分 3 0 42 6 189 暂无简介 简介 举报

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

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

精彩专题

职业精品

上传我的资料

热门资料

资料评价:

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

意见
反馈

返回
顶部

Q