内存对齐
1、什么是内存对齐
- 现代计算机中内存空间都是按照 byte 划分的
- 理论上讲似乎对任何类型的变量的访问可以从任何地址开始,实际的计算机系统对基本类型数据在内存中存放的位置有限制
- 会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐
2、为什么要进行内存对齐
处理器在取数据时一次性就能将数据读出来了,而且不需要做额外的操作,提高了效率。
说一说你理解的内存对齐以及原因
- 分配内存的顺序是按照声明的顺序
- 每个变量相对于起始位置的偏移量必须是该变量类型大小的整数倍,不是整数倍空出内存,直到偏移量是整数倍为止。
- 最后整个结构体的大小必须是里面变量类型最大值的整数倍。
添加了#pragma pack(n)后规则
- 偏移量要是n和当前变量大小中较小值的整数倍
- 整体大小要是n和最大变量大小中较小值的整数倍
- n值必须为1,2,4,8…,为其他值时就按照默认的分配规则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)