gpt4 book ai didi

c - 从 C 中的二进制文件中读取不同位数据的良好编码风格是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:25 25 4
gpt4 key购买 nike

我是新手程序员,正在用 C 语言编写一个简单的 wav 播放器作为我的宠物项目。部分文件加载过程需要从文件头读取特定数据(采样率、 channel 数……)。目前我正在做的与此类似:

  1. 扫描字节序列并跳过它
  2. 将2个字节读入变量a
  3. 检查值并返回错误
  4. 跳过 4 个字节
  5. 将4个字节读入变量b
  6. 检查值并返回错误

……等等。 (代码见:https://github.com/qgi/Player/blob/master/Importer.c)

我已经编写了一些辅助函数来执行扫描/跳过/阅读位。还是重复了好几遍阅读、检查、跳过部分,看起来既不是很有效也不是很聪明。这对我的项目来说不是真正的问题,但由于这在处理二进制文件时似乎是一项很常见的任务,我想知道:是否有某种模式可以说明如何使用更简洁的代码更有效地做到这一点?

最佳答案

大多数情况下,人们会定义与文件结构匹配的结构(通常使用 #pragma pack(1) 之类的东西来确保不会出现填充)。然后,他们使用 fread 之类的东西将数据读入该实例的实例中,并使用结构中的值。

关于c - 从 C 中的二进制文件中读取不同位数据的良好编码风格是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com