C++的内存对齐是指将数据存储在内存中时,会按照一定规则将数据的起始地址对齐到特定的地址上。在计算机中,数据的存储和访问通常是以字节为单位,而不是以位为单位的,内存对齐可以提升数据访问的效率。

  1. 提高数据访问效率。数据按照内存对齐规则时,CPU 可以一次读写多个数据,不需要多次访问内存;
  2. 减少内存碎片。按照规则对齐的数据大小通常是 2 的幂次方,避免出现奇怪的内存碎片;
  3. 提高缓存命中率:内存对齐可以提高缓存命中率。现代 CPU 中通常都有多级缓存,缓存的大小和行大小都是有限制的。当数据按照规则对齐时,它们可以更好地利用缓存行,从而提高缓存命中率。
  4. 保证数据正确性:内存对齐可以保证数据的正确性。当数据按照规则对齐时,可以避免出现数据对齐错误的情况,从而保证数据的正确性。