现在有下面的code#include <stdio.h>typedef struct { int a; char b;}DEFSTT;
void main(void){ DEFSTT f={12,'y'}; printf("%d\n",sizeof(f));}有人知道为什么结果不是5,而是8呢?结构体的长度如何取呢??
我知道了,
#include <stdio.h>
typedef struct { char c; int a; short b;}DEFSTT;
typedef struct { int x; char y; short z;}sss;
void main(void){ DEFSTT f; sss h; printf("%d\n",sizeof(f)); printf("%d\n",sizeof(h));}7楼的你编译一下这个,结果不一样哦~
这个回答好像有点问题吧????
[此贴子已经被作者于2006-10-19 22:12:37编辑过]
有什么问题?VC缺省情况下是按 #pragma pack(4)执行的
如果是这样的话,typedef struct { char a;} cc; main () { cc d; printf("%d\n",sizeof(d));}这个结果的答案是1,而不是4哦