字节对齐
字节对齐的细节和编译器实现相关,一般满足三个准则:
- 1.结构体变量的首地址能够被其最宽的基本类型成员的大小所整除
- 2.结构体每个成员相对于结构体首地址的偏移量是成员大小的整数倍,如有需要编译器会在成员之间填充占位字节(internal padding)使之满足本条要求
- 3.结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后添加占位字节(trailing padding),使之满足本条要求
另外,可以通过预处理指令#prama pack(N)指示编译器按照N字节对齐
推荐阅读
- iOS内存对齐原则
- java|java IO流小结
- java|新年快乐呀 , 给大家送上字节 Java 架构师面试汇总 + 架构师简历模板
- 什么是内存对齐,原理你真的了解吗()
- 大数据|字节跳动火山引擎加入 Linux 云原生计算基金会(CNCF) | 新闻
- 软件测试|今天公司新来个字节25k出来的,让我见识到了真正的基础天花板
- 字节前端面试经验(已拿到offer)
- 【第四期】字节跳动一面 golang
- 2022年了春招要来了,字节跳动HR(给大家说点面试字节的干货!)
- 2022年 | 字节大佬推荐,超详细的Android(安卓)开发入门教程+Android Studio安装教程 !