使用fread将数据复制到结构中

时间:2019-02-05 14:51:37

标签: c

我正在查看一些旧代码,但我真的不明白。

有一个标头结构

struct my_header {
   UINT32 chksum,
   UINT16 ValueA,
   UINT64 ValueB,
   UINT16 ValueC
};

然后有一个呼叫fread

fread(&header, 1, sizeof(header), fd);

这是文件的内容,通过slickedit十六进制视图

F5010000 3906000 50429178 07000000
14000000 0000000 00000000 00000000

一旦读取,我将检查结构中的数据,看起来像这样

chksum: 0x00001F5
ValueA: 0x0639
ValueB: 32087556688
ValueC: 0x0014

当比较fread对十六进制转储的内容时,它看起来几乎是正确的。但是事情是有些奇怪的。例如,chksum1F5,而十六进制转储是F501ValueA639,但在十六进制转储中为3906 ...

到底是怎么回事?

0 个答案:

没有答案