结构体的大小 //笔试重点
内存对齐:成员存放的地址能整除它本身的大小
1.前面所有成员大小相加是当前成员大小的倍数
2.结构体的大小能整除当个最大类型的大小
#include <stdio.h>
//#pragma pack(1)//改变内存对齐的方式
struct A//空结构体,在c++1字节,在C非法
{
};
struct B
{
char a;//1+3
char arr[3];//不使用,占位
int b;//4
};//8
struct C
{
char a;//1+1
short b;//2
int c;//4
};//8
struct D
{
char a;//1+3
int b;//4
float c;//4+4
double d;//8
};//24
struct E
{
char a;//1+3
int b;//4
short c;//2
};//10+2=12
struct F
{
int a;//4
char b;//1
};//5+3=8
struct G
{
char a;//1
struct GG
{
int b;//4
float c;//4
}d;//8
};//1+8+3=12
int main()
{
printf("%d\n",sizeof(struct G));
printf("%d\n",sizeof(struct E));
return 0;
}