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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.