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

结构体是怎样占用内存的

  • 内存
  • 2024-05-18 22:28:36
  • 9941

一、C语言联合体和结构体中变量所占内存UnionU有两个成员变量,字符数组st占4个字节,整数i占4个字节,所以两者共用4个字节,unionU占4个字节。
StructA有两个成员变量,整数c占4个字节,unionU类型u也占4个字节。因此structA的大小就是两者之和,4+4=8字节。
注意,这些成员变量的大小都是4字节,所以不需要考虑字节补全等因素。
二、C语言结构体问题1、从内存使用特点来看
结构体占用的内存等于结构体各个成员占用的内存之和。union类型等于占用内存最大的成员所占用的内存。枚举类型实际上是定义了一种特殊的整数,而这种整数类型有固定的取值范围,但它总是会占用整型变量的内存。
2.从变量使用的角度来看
对应三类内存使用策略,该结构体的每个成员的读写操作都是可能的、有意义的,并且对于共享来说,一般来说,其成员中只有一个具有如此重要的意义。您可以将枚举类型视为特殊的整数类型。