为什么继承会迫使其他大小为零的结构膨胀?

为什么当空结构的大小为 1 时,零大小的数组会强制结构为零大小,为什么从非零大小的结构继承会导致结构膨胀到基类型的大小?

通过 GCC 5.3.0 编译,以防任何答案取决于 c++ 规范。

#include <iostream>

struct a {};
struct b { int x[0]; };
struct c : a{ int x[0]; };
struct d : b{ int x[0]; };

int main()
{
    std::cout << sizeof(a) << std::endl; // 1
    std::cout << sizeof(b) << std::endl; // 0
    std::cout << sizeof(c) << std::endl; // 4
    std::cout << sizeof(d) << std::endl; // 0
} 

以上是为什么继承会迫使其他大小为零的结构膨胀?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>