结构体大小

mac2026-03-25  9

。。。结构体成员存放的地址要能整除该成员本身的大小(寄存器读取时) 1.前面使所有成员的大小相加,应该是当前成员大小的倍数 2.整个结构体的大小应该能是该结构体中单个最大成员大小的倍数 如下所示:

struct A { char a;//1+3 int b;//4 };//8 struct B { char a;//1+1 short b;//2 int c;//4 };//8 struct C { int a; //4 char b;//1+1 short c;///2 };//8 struct D { char a;//1+3 int b;//4 short c;//2+2 };//12 struct E { int a;//4 char b;//1 };//5+3 struct F { int a;//4+4 double b;//8 float *c;//4 };//20+4 struct G { int a;//4 float *b;//4 double c;//8 };//16 struct H { char a;//1+3 struct HH { int b; long c; }d;//8 };//12 struct I { char a; struct II { int b; long c; };//没有定义变量,不占内存 };//1 struct J { char a;//1+3 struct { int b; long c; };//定义了一个没有名字的变量,8 };//12 struct K { char a;//1+1 short b[4];//8 int c;//4 };//14+2 union B//联合体共用体(节约资源)各个成员有排他性,共用低地址 { char a; int b; };//4
最新回复(0)