4.1.2 数据对齐要求 在嵌入式系统、操作系统内核开发、高性能计算乃至现代C/C++应用的底层优化中,有一条看似沉默却无处不在的铁律:内存地址不是任意可取的数字,而是被硬件悄然编织进一张精密对齐网格中的坐标。你声明一个 ,编译器不会把它塞进内存里第一个空闲字节;你用 拷贝一段结构体,若源或目标地址未按其自然边界停放,CPU可能当场抛出一个 ——而你甚至还没来得及在 GDB 里敲下 。这不是编译器的疏忽,也不是操作系统的刁难,而是硅基世界里最基础的物理契约:数据对齐,是硬件与软件之间用晶体管写就的契约书,字字千钧,不容涂改。 我们常把“对齐”当作一个编译器自动处理的后台事务,仿佛只要开了 ,一切便水到渠成。