struct A
{
int a;
char b;
short c;
};
struct B
{
char b;
int a;
double c;
};
struct C
{char a;
}
原则:按照当前的最大字节类型对齐。最后总的字节数要是最大字节的倍数。
例如:1.首先看A,int a占4个字节,char b占一个字节,short c占 2个字节,4+1+2=7,当前最大字节类型大小为4,但是要是4的倍数,所以是8.
2.B char b 一个字节, Int a是4个字节,要从第5个字节放起,所以 char b本身要占 4个字节,这样 b和a就占了8个字节。double c 占8个字节,刚好从第9个字节放起,总共占 8+8=16个字节,16刚好是8的倍数。
3. C大小为1.
4..如果是虚函数的类对象,将指针加进去,把指针当成是普通的成员数据或者结构体数据即可。
本文详细解析了结构体成员变量按最大字节类型对齐的原则,并通过实例说明如何计算结构体的实际大小,确保其总字节数为最大字节类型的整数倍。

1388

被折叠的 条评论
为什么被折叠?



