原来结构里面的变量有这种坏习惯啊 乱占空间
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
typedef struct
{
int a;
float b;
char c;
double d;
} NODE;
main()
{
printf("%d\n",sizeof(NODE));
}
输出结果是20
不是4 x 8 =32
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main()
{
struct a
{
char c;
int n;
};
struct a k;
printf("%d\n",sizeof(k.c));
printf("%d\n",sizeof(k.n));
getch();
return 0;
}
输出
1
4
----------------解决方案--------------------------------------------------------
如果系统是32位的话,CPU 最多每次读取32位长的数据。
以CPU能够读取的速度最快的数据对齐。
64位系统没用过。(它上面的编译器会怎么做就不知道了)
//
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
看看
没想到结构有这样的问题. ----------------解决方案--------------------------------------------------------
回复 8# 的帖子
不好意思,我觉的可能还是有点问题typedef struct
{
int a;
float b;
char c;
double d;
} NODE;
main()
{
printf("%d\n",sizeof(NODE));
}
输出结果是20
不是4 x 8 =32
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main()
{
struct a
{
char c;
int n;
};
struct a k;
printf("%d\n",sizeof(k.c));
printf("%d\n",sizeof(k.n));
getch();
return 0;
}
输出
1
4
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]forrestx[/underline][/bold] 于 2007-12-1 17:06 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1126013&ptid=188724][/url]
不好意思,我觉的可能还是有点问题
typedef struct
{
int a;
float b;
char c;
double d;
} NODE;
main()
{
printf("%d\n",sizeof(NODE));
}
输出结果是20
不是4 x 8 =32 ...
不好意思,我觉的可能还是有点问题
typedef struct
{
int a;
float b;
char c;
double d;
} NODE;
main()
{
printf("%d\n",sizeof(NODE));
}
输出结果是20
不是4 x 8 =32 ...
如果系统是32位的话,CPU 最多每次读取32位长的数据。
以CPU能够读取的速度最快的数据对齐。
64位系统没用过。(它上面的编译器会怎么做就不知道了)
//
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽