计算结构体大小的方法:
我们在初次遇到这个问题时常常会想不就是把各个成员变量大小加起来吗,多么完美纯粹,但是事实不是那样的哈,
真正的规则是:
1.结构体成员的偏移量必须是结构体成员大小的整数倍(0被认为是任何整数的整数倍)
2.结构体大小必须是所有成员变量大小的整数倍 (数组和结构体除外)
A:--------------------------------------------------------------------------------------------------------------
char占1个字节。Int占4个字节,
为了便于理解,用如下方式来表示:
(1)【】【】【】【】【】【】我们可能是这么认为的.
(2)【】【】【】【】【】【】【】【】【】(1)不对的原因是忽略了偏移量规则,那这样总该对了吧?
(3)【】【】【】【】【】【】【】【】【】【】【】【】(2)不对的原因是忽略了结构体大小必须是所有成员变量的整数倍9不是1和4的整数倍,1和4的整数倍中比9大的最小的数是12。
B:-------------------------------------------------------------------------------------------------------------
原理同A,特别加上第二条中数组除外的规则。
如果只是在结构体里声明了结构体,那这个结构体不会占内存的。
如果定义了一个结构体变量那也不要忘记规则第二条。
结构体大小计算方法coming
最新推荐文章于 2023-10-11 18:40:28 发布