c - 使用 fread 将数据复制到结构中
问题描述
我在看一些旧代码,我真的不明白。
有一个标题结构
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
is1F5
但十六进制转储是F501
. ValueA
是639
,但在十六进制转储中它是3906
......
到底发生了什么?
解决方案
推荐阅读
- python - 在 Pandas 中处理 csv 文件的结果中的 NoneType 值
- r - downloadHandler 在 tabPanel 的其他面板中执行失败
- python - Groupby 采样 pandas,如果适用,组保持低于 n
- r - 将数据框中的多列与外部向量进行比较
- compiler-optimization - 即使我禁用了所有内容,CPython 代码似乎也得到了优化
- python - 如何与 Python 多处理中的所有处理共享全局列表?
- python - Flask-Restx Swagger 文档问题
- c# - 如何为 C# 中的现有列表创建包含?
- javascript - npm install react-router-dom 不工作(漏洞)
- javascript - JS比较两个多维数组并用dirrefences完成第二个