#pragma pack(1)
加上这个就可以得到想要得答案了
----------------解决方案--------------------------------------------------------
#include <stdio.h>
struct one
{ char c;
int a;
short b;
};
struct two
{
char y;int x;
short z;
};
void main(void)
{
printf("%d\n",sizeof(one));
printf("%d\n",sizeof(two));
printf("%d\n",sizeof(char));
printf("%d\n",sizeof(int));
printf("%d\n",sizeof(short));
}
这个程序可以吗?顺序不同结果不一样,毕竟为什么
----------------解决方案--------------------------------------------------------
#pragma pack(1)这个是为什么
----------------解决方案--------------------------------------------------------
VC是4个字节来分配,不到4补到4位.
----------------解决方案--------------------------------------------------------
有没有人回答我问题。
----------------解决方案--------------------------------------------------------
#pragma pack(1)
他的作用是让内存按一个字节对齐
----------------解决方案--------------------------------------------------------
这些细节,我还要继续学习
----------------解决方案--------------------------------------------------------
确实学到一些东西。不过在tc下是3。就没有这个问题了。
----------------解决方案--------------------------------------------------------
以下是引用踏魔狼在2006-10-19 21:08:20的发言:
VC是4个字节来分配,不到4补到4位.
VC是4个字节来分配,不到4补到4位.
这个回答好像有点问题吧????
[此贴子已经被作者于2006-10-19 22:12:37编辑过]
----------------解决方案--------------------------------------------------------
以下是引用bestboy555在2006-10-19 21:55:14的发言:
这个回来好像有点问题吧????
有什么问题?
VC缺省情况下是按 #pragma pack(4)执行的
----------------解决方案--------------------------------------------------------