内存对齐:每个数据存放的内存地址能整除数据本身的大小;
原则:1.前面所有成员的字节数能整除当前成员大小(解决单个变量)
2.结构体的最终大小必须能整除最大单个类型的大小(解决数组)
struct A
{
char a;//1+3
int b;//4
}A;// 8
struct B
{
float a;//4
int b;//4
}B;//8
struct C
{
char a;//1+1
short b;//2
int c;//4
}C;//8
struct D
{
char a;//1+3
float b;//4
double c;//8
}D;//16
struct E
{
char a;//1+3
int b;//4
long*c;//4+4
double d;//8
}E;//24
struct F
{
int a;//4
char b;//1+3
}F;5+3
struct G
{
char a;//1+3
int b;//4
short c;//2
}G;//12;
struct HH
{
char b;//1+3
int a;//4
}HH;//8
struct H
{
int c;//4
struct HH d;//8
double d;//8
}H;//16
结构体大小
最新推荐文章于 2024-03-21 12:43:27 发布