我正在查看一些旧代码,但我真的不明白。
有一个标头结构
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
对十六进制转储的内容时,它看起来几乎是正确的。但是事情是有些奇怪的。例如,chksum
是1F5
,而十六进制转储是F501
。 ValueA
为639
,但在十六进制转储中为3906
...
到底是怎么回事?