我正在阅读一篇关于内存中数据类型对齐的文章(这里),我无法理解一点,即
请注意,双变量将在32位机器上的8字节边界上分配,并且需要两个存储器读取周期.在64位机器上,根据存储体的数量,双变量将在8字节边界上分配,并且只需要一个存储器读周期.
我的疑问是:为什么需要在8字节边界上分配双变量而不是4字节?如果它仍然分配在4字节边界上,我们只需要2个存储器读周期(在32位机器上).如果我错了,请纠正我.
如果有人有一个关于成员/内存对齐的好教程,请分享.
c memory-alignment 32bit-64bit
32bit-64bit ×1
c ×1
memory-alignment ×1