vc这个变态!
typedef struct
{
int No;
D_POINT zb[250];
double apart;
int sLine[4];
int eLine[4];
int level;
}INNER_LINE;
typedef struct
{
double x;
double y;
}D_POINT;
console应用程序,sizeof(INNER_LINE)居然是4056,害得我忙乎了半天,我说怎么fread文件就是读错
问题点数:20、回复次数:13Top
1 楼liaomingxue()回复于 2006-01-10 00:07:49 得分 0
no reply?Top
2 楼pipilupzj(皮皮鲁)回复于 2006-01-10 00:26:07 得分 1
这是为了对齐
如果你这样定义:
typedef struct
{
D_POINT zb[250];
double apart;
int sLine[4];
int eLine[4];
int level;
int No;
}INNER_LINE;
typedef struct
{
double x;
double y;
}D_POINT;
就是4048
在第一个int后面和最后一个int后面,各自填充了一个int的大小,所以你得到的是4056
自己到网上找一些结构对齐的资料就知道为什么了Top
3 楼pomelowu(羽战士)回复于 2006-01-10 01:57:59 得分 1
呵呵,字节对其问题。google下或者在csdn搜一下“字节对齐”,讨论过很多次了。Top
4 楼dragonfly001(I want to fly!)回复于 2006-01-10 08:22:15 得分 1
UP!剛開始學習VCTop
5 楼lixiaosan(小三)回复于 2006-01-10 08:50:34 得分 1
字节对齐问题。。。。
search “字节对齐” in googleTop
6 楼amanda11(jack)回复于 2006-01-10 08:54:42 得分 1
in baidu,please search in baidu ,ok~~Top
7 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-01-10 09:08:49 得分 1
老问题哦!!嘿嘿Top
8 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-01-10 09:10:24 得分 10
#pragma pack(push,1)
开始定义
#pragma pack(pop)
这样就满住你要求了Top
9 楼broccoli(-_-||)回复于 2006-01-10 09:46:43 得分 1
upTop
10 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2006-01-10 10:02:45 得分 1
http://www.xfblog.com/user1/7106/archives/2005/37787.htmlTop
11 楼lzzqqq(Jonersen)回复于 2006-01-10 10:12:03 得分 1
一个好的结构体应该是4字节的倍数,看看<<windows游戏编程大师技巧>>里面就知道了,
一般的应用程序感到不到差异,但在高性能,高速度执行的情况下,性能和速度差异就很明显了.Top
12 楼liaomingxue()回复于 2006-01-10 21:50:13 得分 0
牛
好多牛Top
13 楼powerbamboo(清风明月)回复于 2006-01-11 16:03:35 得分 1
为什么大家都在回答这个问题?
既然有人给出了答案,牛人们还是去看看别的问题哦Top




