新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 关于结构体数据存储的对齐问题

关于结构体数据存储的对齐问题

作者: 时间:2016-12-01 来源:网络 收藏
在linux下的结果:
在windows下的结果:
在linux下的存储形式,其中黑色包围起来的才是我们的存储空间白色的部分是保留区域,通过下面的两幅图就可以知道其中的一些道理,知道其中所谓的完成一样的功能,保证存储空间最小:
在windows下的存储形式,其中黑色包围起来的才是我们的存储空间白色的部分是保留区域:
从上面的几个图片可以知道在C语言中的内存分布是比较复杂的。一定要注意存储的对齐形式,这样才能了解其中的分布规律。当然了上面的形式都只是在小端处理器模式下的存储形式,对于大端也有类似的情况,只是存储的位置不一样,但是内存的大小是相同的。
结构体的定义不能是随便的,如果考虑好对齐关系能够节省大量的存储空间。实现效率和存储空间的折中。虽然#pragmapack(n)等能够改变其中的对齐方式,不过建议不要随便改动,可能得不偿失。

上一页 1 2 下一页

关键词: 结构体数据存储对齐问

评论


相关推荐

技术专区

关闭