//by www.datahf.net zhangyu #include "stdio.h" typedef struct A { char c; int d; short e; }; typedef struct B { char c; __int64 d; int e; short f; A g; char h; int i; }; typedef struct C { char c; __int64 d; int e; short f; char g; short h; }; typedef struct D { char a; short b; char c; }; int main() { B *b=new B; void *s[32]; s[0]=b; s[1]=&b->c; s[2]=&b->d; s[3]=&b->e; s[4]=&b->f; s[5]=&b->g; s[6]=&b->h; s[7]=&b->g.c; s[8]=&b->g.d; s[9]=&b->g.e; s[10]=&b->i; b->c= 0x11; b->d= 0x2222222222222222; b->e= 0x33333333; b->f=0x4444; b->g.c=0x50; b->g.d=0x51515151; b->g.e=0x5252; b->h=0x66; int i1=sizeof(A); int i2=sizeof(B); int i3=sizeof(C); int i4=sizeof(D); printf("i1:%d\ni2:%d\ni3:%d\ni4:%d\n",i1,i2,i3,i4);//12 48 32 6 }