struct结构体的大小问题:
1.偏移量是结构体中成员所占字节的整数倍。
2.整个结构体所占大小应该为结构体中最大成员的整数倍,不足就填充字节。
例子如下:
#include "stdio.h"
#include "stdlib.h"
void main()
{
struct getHowBig{
int a;
double b;
char c;
}struct1;
printf("the struct is %d",sizeof(struct1));
getchar();
}
int a 4字节 double b 8字节 char c 1字节
a 占用 0 1 2 3 下一个偏移量是4,4不能整除8,所以字节填充到8,b放入,下一个偏移量是16,能整除1,直接放入c,一共占用17字节,但是17不能整除结构体中最大的成员 也就是double 字节为8 ,所以填充字节到24.