结构体大小
作者:互联网
结构体大小只要记住以下三点即可:
1.结构体每个成员变量的相对首地址必须是该变量长度的整数倍;
2.结构体总大小必须为最大成员长度的整数倍;
3.union长度为最大成员变量的长度;
例题:
下面结构体
struct s1{
char ch,*ptr;
union{
short a,b;
unsigned int c:2,d:1;
}
struct s1*next;
}
的大小为();
A.12字节
B.16字节
C.20字节
D.24字节
解析:
char ch: 总长度为1;
char *ptr:总长度为1+3+4;
union:总长度为1+3+4+4;(由第三条可知)
struct *s1 总长度为1+3+4+4+4
又因为16是最大长度4的整数倍,满足第二条,因此总长为16字节;
一上均为32位系统结果
标签:字节,union,s1,总长度,char,大小,长度,结构 来源: https://blog.csdn.net/fyf18845165207/article/details/104606358