1:什么是数据对齐?
数据对齐是指数据所在的内存地址必须是该数据长度的整数倍。
2:为什么要数据对齐?
简单的来说就是提高CPU对内存的访问效率。
CPU的优化规则大致原则是这样的:对于n字节的元素(n=2,4,8),它的首地址能被n整除,才能获得最好的性能。
设计编译器的时候可以遵循这个原则:对每一个变量,可以从当前位置向后找到第一个满足这个条件的地址为首地址。
上面说的这些似乎并不能帮助我们真正理解数据对齐的问题:
以如下一个例子为例:
1:什么是数据对齐?
数据对齐是指数据所在的内存地址必须是该数据长度的整数倍。
2:为什么要数据对齐?
简单的来说就是提高CPU对内存的访问效率。
CPU的优化规则大致原则是这样的:对于n字节的元素(n=2,4,8),它的首地址能被n整除,才能获得最好的性能。
设计编译器的时候可以遵循这个原则:对每一个变量,可以从当前位置向后找到第一个满足这个条件的地址为首地址。
上面说的这些似乎并不能帮助我们真正理解数据对齐的问题:
以如下一个例子为例: