接下来,我们定义c++数据对象的内存布局。具体来说,对于每种类型,我们指定该类型的对象O的以下信息:

  • sizeof(O):对象的大小
  • align(O):对象的对齐
  • offset(C):对象O中,每个数据组件C(基类部分或类成员)的偏移量,

在规范内部,我们还定义了以下术语:

  • dsize(O): 一个对象的数据大小,即对象O的大小,但不包括尾部填充
  • nvsize(O): 对象的非虚大小,即对象O的大小,但不包括虚基类
  • nvalign(O): 对象的非虚对齐,即对象O的对齐,但不包括虚基类