📄 subject_39039.htm
字号:
<p>
序号:39039 发表者:REMEX1980 发表日期:2003-05-07 19:07:59
<br>主题:请教:文件读的问题
<br>内容:定义了一个结构如下:<BR>typedef struct _TEST_ {<BR> char cA;<BR> int iB;<BR>} TEST;<BR>文件的数据(以16精制)为 01 02 03 04<BR>读取函数为<BR> FILE *fp;<BR> TEST test;<BR> fseek (fp, 0L, SEEK_SET);<BR> fread (&test, 1, sizeof(TEST), fp);<BR>得出的结果是:<BR> test.cA 为0x01<BR> test.iB 为0x0403<BR>问题::02跑到哪儿去了?<BR> 怎么会这样呢??<BR><BR>-----------------------------<BR> Thanks for all !
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:微笑的撒旦 回复日期:2003-05-07 19:19:03
<br>内容:结构体成员字节对齐的问题。<BR>把对齐设为1个字节,再运行试试看,会有不同!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:REMEX1980 回复日期:2003-05-07 22:41:48
<br>内容:能具体点吗?<BR>THANKS
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:微笑的撒旦 回复日期:2003-05-08 08:46:22
<br>内容:一般编译器为8字节对齐。char为一个字节,int4个字节,所以TEST结构体在内存中要占8个字节。在内存中是这样的:<BR>第一个字节:char变量<BR>第二个字节:没有东西,是用来填充的<BR>第三个字节:没有东西,是用来填充的<BR>第四个字节:没有东西,是用来填充的<BR>接下来四个字节,就是int变量
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:REMEX1980 回复日期:2003-05-08 11:32:13
<br>内容:哪,你之前说的[把对齐设为1个字节]<BR> 这个又怎么设呢?/<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:REMEX1980 回复日期:2003-05-08 11:34:46
<br>内容:而且,象我第一篇说的那样,<BR>为什么只有第二字节给漏掉了呢?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:微笑的撒旦 回复日期:2003-05-08 16:12:25
<br>内容:自己多找找!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:小不点 回复日期:2003-05-08 16:45:15
<br>内容:VC菜单栏<BR>project -> setting -> C\C++ -> category -> code Generation<BR>将 Struct member alignment 选择 “1 BYTE” 即可<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -