空结构体所占的内存

Tags
C语言
结构体
CPP语言
ID
6
 

C语言

在 C 语言中空结构体的大小是 0 字节:
notion image

C++语言

在 C++ 中空结构体的大小是 1 字节:
notion image
💡
C++ 11 引入了一个新的特性,称为 "空结构体优化"(Empty Base Optimization,EBO)。如果一个空结构体作为基类被其他类继承,而派生类没有自己的成员,编译器可能会对空结构体进行优化,不占用额外的空间。但是对于独立的空结构体,仍然会分配 1 个字节的空间。