/*
如何计算无嵌套结构体的大小?
由于存储变量地址对齐的问题,计算结构体大小的3条规则:
1、结构体变量的首地址,必须是结构体变量中的“最大基本数据类型成员所占字节数”的整数倍。(对齐)
2、结构体变量中的每个成员相对于结构体首地址的偏移量,都是该成员基本数据类型所占字节的整数倍。(对齐)
3、结构体变量的总大小,为结构体变量中“最大基本数据类型成员所占字节数”的整数倍(补齐)
*/
//结构体内存对齐
struct S1
{
char c1;
int a;
char c2;
};
struct S2
{
char c1;
char c2;//调整顺序
int a;
};
int main()
{
struct S1 s1 = {0};
printf("%d\n",sizeof(s1)); //12
struct S2 s2 = {0};
printf("%d\n",sizeof(s2)); //8
return 0;
}