当前位置:首页 > 内存 > 正文

空结构体占多少内存

  • 内存
  • 2024-06-03 08:38:49
  • 7694

一、C语言联合体和结构体中变量所占内存unionU有两个成员变量,字符数组占4个字节,整数i占4个字节,所以它们都共享4个字节,unionU占4个字节。
StructA有两个成员变量,其中整数c占用4个字节,类型unionUu也占用4个字节。所以structA的大小就是两者之和,4+4=8字节。
注意,由于这些成员变量的大小都是4字节,所以不需要考虑字节补全等因素。


二、为什么C++中空类和空结构体大小为1

这就是实例化的原因(空类也可以实例化)为了达到这个目的,编译器往往会提供一个空类或者空结构体(C++中的结构体也可以考虑)。像类)隐式添加一个字节,使得空类或者空结构体实例化后在内存中获得唯一的地址,这样空类占用的内存大小就是1个字节。

#include
使用命名空间std
classa{};
intmain()
{
cout<<"sizeof(a)="<return0;
}

程序执行的输出结果为:

sizeof(a)=1

以上程序确认空类占用的内存为1字节。