C和C ++中空结构的大小

时间:2014-02-18 11:09:32

标签: c++ c

空结构的大小在C中是0字节但在C ++中是1字节。为什么?有什么区别?

1 个答案:

答案 0 :(得分:3)

C不正确的情况下,如果没有成员,则无法拥有struct

C99 says

  

如果struct-declaration-list不包含命名成员,则行为未定义。

但是GCC允许您拥有大小为0的无成员结构。 G++将struct视为其中包含char类型的单个成员。

请查看以前的SO answering为什么在C ++中,大小为1B