2014-02-18 42 views
0

的sizeof空结构的在C 0字节但在C++中,它是1个字节。为什么?有什么不同?大小用C空结构和C++

+0

有什么区别?他们是不同的语言。 –

+0

好!但C的新功能不过是C++正确!如果它是不同的语言意味着在C++中如何支持c头文件?两种语言有相似之处。但为什么它是C中的0字节? – Ramakrishna

+0

@Ramakrishna:简单:不是所有的C头文件在C++的支持。 – PlasmaHH

回答

2

C其不正确的,你不能有一个struct没有在它的成员。

C99 says

如果结构声明列表中没有名称的成员,该行为是不确定的。

但是GCC可以让你有大小为0一个没有成员结构。 G++对待STRUCT仿佛它在它char类型的单个构件。

看这个以前SO answering为什么在C++的尺寸为1B