pack(1)时,按一字节对齐,这样
struct Size{
char c1; //占1个字节
int i1; //占4个字节
float f1; //占4个字节
double d1; //占8个字节
} ;
一共17字节
pack(2)时,按二字节对齐,这样
struct Size{
char c1; //占2个字节
int i1; //占4个字节
float f1; //占4个字节
double d1; //占8个字节
} ;
一共18字节
pack(4)时,按四字节对齐,这样
struct Size{
char c1; //占4个字节
int i1; //占4个字节
float f1; //占4个字节
double d1; //占8个字节
} ;
一共20字节
pack(8)时,按八字节对齐,这样
struct Size{
char c1; //占4个字节
int i1; //占4个字节,和c1一起一共用8个字节
float f1; //占4个字节
.... //是4字节边界,和f1一共用8字节
double d1; //占8个字节
} ;
一共24字节
pack(16)时,按十六字节对齐,这样
struct Size{
char c1; //占4个字节
int i1; //占4个字节
float f1; //占4个字节
.... //是4字节边界,和c1,i1,f1一共用16字节
double d1; //占16个字节
} ;
一共32字节
内存对其之#pragma pack
最新推荐文章于 2024-10-15 00:47:50 发布