C99§6.7.2.1第13条规定:
在结构对象中,非位字段成员和位字段所在的单元具有按声明顺序增加的地址.
并继续谈论填充和地址.C89等效部分是§6.5.2.1.
C++有点复杂.在1998年和2003年的标准中,有第9.2条第12款(C++ 11第15条):
声明没有插入访问说明符的(非联合)类的非静态数据成员,以便后面的成员在类对象中具有更高的地址.由访问说明符分隔的非静态数据成员的分配顺序未指定(11.1).实施对齐要求可能导致两个相邻成员不能立即分配; 因此,可能需要空间来管理虚拟功能(10.3)和虚拟基类(10.1).