所以基本上我很难理解数据对齐。我不明白为什么在 64 位架构上,例如将 4 字节数据存储到地址 0x0、0x4、0x8、0xC 的倍数很重要。CPU 的提取是否从字大小的每个倍数开始(这里是 8 个字节)?为什么 2 字节数据必须存储在 0x0、0x2、0x4、0x6、0x8、0xA、0xC、0xE 地址?即使存储在 0x1,CPU 也可以在一个时钟内加载 2 字节数据……那么为什么它应该在地址 0x0、0x2、0x4、0x6、0x8、0xA、0xC、0xE。
另外,如果 CPU 缓存行例如是 64 字节,那么如果数据在地址 0x...00 和 0x...40 之间不重叠,为什么我要关心数据对齐?这很令人困惑...