在网上看到一句话:
结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding);
由于结构体的成员可以是复合类型,比如另外一个结构体
确定复合类型成员的偏移位置时则是将复合类型作为整体看待
struct s1
{
char c;
int i;
};
struct s2
{
char c1;
s1 s;
char c2;
};
sizeof(s2)为16;
如果按照上面的说法,s2中的s1的偏移量应该是8才对(s1大小为8),那结构体s2大小 应该是24才对啊,是不是那句话错了。