C ++中最小的标准兼容对象大小?

时间:2013-02-11 12:46:25

标签: c++ sizeof

我知道空类的大小由标准定义为非零。在大多数实现中,通常 1个字节 但是,C ++标准是否指定了对象的最小可能大小?假设按照标准,空类对象的大小至少 1个字节是合乎逻辑的。

1 个答案:

答案 0 :(得分:8)

对象的最小大小为零(§1.8/ 5)。但是,完整对象的大小必须始终为非零,并且该大小必须至少为一。

  

除非它是位字段(9.6),否则最派生的对象应具有   非零大小,应占用一个或多个字节的存储空间。基础   class子对象可能没有大小。一个可以轻易复制的对象   或标准布局类型(3.9)应占用连续的字节   存储

由于所谓的EBCO,空基类优化,空类型的基类子对象的大小可以为零。