1. 内存对齐的目的
内存对齐跟内存物理结构有关。64位计算机的内存一般有64个电容chip,每个chip对应64位的每一位。一次内存IO可以从每个chip上同时读出一位,组成64位字长。
CPU希望每次读内存都能直接读出一个基本数据类型。如果一个8位数据double,从内存0x01开始存,则CPU在读这个数据时要先读0~7再读8~15,读两次。
这样,计算struct 大小就不是很难理解了。
2024-02-27 14:28:03
1. 内存对齐的目的
内存对齐跟内存物理结构有关。64位计算机的内存一般有64个电容chip,每个chip对应64位的每一位。一次内存IO可以从每个chip上同时读出一位,组成64位字长。
CPU希望每次读内存都能直接读出一个基本数据类型。如果一个8位数据double,从内存0x01开始存,则CPU在读这个数据时要先读0~7再读8~15,读两次。
这样,计算struct 大小就不是很难理解了。