结构体所占内存空间

2025-03-24 02:18:39
推荐回答(3个)
回答1:

内存边界对齐,可以这样理解,char可以存在任意起始地址,short存在2倍数的起始地址,float存在4倍数的起始地址,默认对齐方式为4字节,int变量占4字节,char变量占1字节,float变量是4字节边界的地方为起始地址的,即char变量之后,空了3个字节,对齐的好处就是编译器访问速度会提供,寻址方便

回答2:

内存向最大的对齐.本题中float最大,为4B,故char 向它对齐.也为4

回答3:

构体成员中所占位数最长的那个数据的整数倍,
在这个结构体中 结构体所占的位数是double型的整数倍。
这个结构体虽然使用了位域,但是对结果没有影响。
int i 占4个字节,char j占一个字节,这俩总共要占8个字节,虽然后面的3个字节没有用。int a 本身占个4个字节,但与结构体对齐,要占8个字节。
double b占8个字节。总共为8+8+8=24个字节
另外,虚机团上产品团购,超级便宜