作者MasterChang (我爱ASM)
看板C_and_CPP
标题Re: [问题] struct alignment 的问题
时间Thu May 14 02:06:05 2009
※ 引述《yoco315 (眠月)》之铭言:
: 小红帽 64 bit
: gcc 3.4
: struct A { struct B { struct C {
: int a ; double a ; float a ;
: int b ; double b ; float b ;
: int c ; float c ; float c ;
: } ; } ; } ;
: sizeof : 12 24 12
: 想不透为什麽 struct B 会是 24 阿~~~
: 不是应该 8 + 8 + 4 = 20 吗 O_Q???
Try This One XD
#pragma pack(push) /* push current alignment to stack */
#pragma pack(4) /* set alignment to 4 byte boundary */
struct B
{
double a ;
double b ;
float c ;
};
#pragma pack(pop) /* restore original alignment from stack */
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.132.20.82
1F:→ yoco315:我知道 pack, 但是我很困惑他为什麽要去 padding float XD 05/14 04:39
2F:推 yoco315:补充一下,我知道 alignment XD 但是我不懂他这边干嘛要al 05/14 05:22
3F:→ yoco315:那个 int,int,int 的,最後一个都没 padding... 05/14 05:22
4F:→ yoco315:想不到 8+8+4 为什麽最後一个要补到 8 05/14 05:22
5F:推 chrisdar:64bit os 补到8byte 不意外 05/14 08:09
6F:→ chrisdar:没事...XD 我看错了 05/14 08:11