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

size of empty structure in C and C++

本文关键字:结构 C++      更新时间:2023-10-16

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

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

C99 says

如果结构声明列表不包含命名成员,则行为是未定义的。

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

看看前面的这个SO回答为什么在C++大小是1B.