这确实是一个实现细节。很久以前,我以为它可以是零字节,也可以是一千字节,因为它与语言规范没有关系。但是,在看了标准(第5.3.3节)之后,sizeof定义为始终返回一个或更大的值,无论发生什么。大多数派生类的大小应大于零。这是必需的,除其他外,允许您处理对象数组和指向它们的指针。如果您的元素被允许为零大小,那么&(array[0])将与&(array[42]),这将对您的处理循环造成各种各样的破坏。它可能不是机器单词的原因是,它中没有任何元素实际上需要在单词边界(例如整数)上对齐它。例如,如果你char x; int y;在类中,我的GCC将其时钟设置为8个字节(因为第二个int必须在该实现中对齐)。