我想知道一个空类的对象的大小是多少。它肯定不能为0字节,因为它应该可以像其他任何对象一样进行引用和指向。但是,这样的物体有多大?
我用了这个小程序:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
我在Visual C ++和Cygwin-g ++编译器上得到的输出都是1个字节!这让我有些惊讶,因为我期望它的大小与机器字一样(32位或4字节)。
谁能解释为什么 1个字节的大小?为什么不是 4个字节?这也取决于编译器或计算机吗?另外,有人可以给出更确切的理由说明为什么空的类对象的大小不为0字节吗?