有编程经验的人进来看下这个问题?
现在有下面的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呢?
结构体的长度如何取呢??
现在有下面的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哦