c++ - 在 C++ 中读取不同格式的数据

标签 c++ binary parsing

我正在创建我的第一个真正的二进制解析器(一个 tiff 阅读器)并且有一个关于如何分配内存的问题。我想在我的 TiffSpec 类中为 IFD 条目创建一个结构。这些条目将始终为 12 个字节,但根据特定条目中指定的类型,末尾的值可能是不同的类型(或者可能只是文件中另一个位置的地址)。转换此类数据的最佳方法是什么?我相信我要处理的最小内存是 1 个字节。

最佳答案

在 C++ 中,您应该使用 union

这是一种机制,您可以通过这种机制定义多个重叠的数据类型,可能具有共同的 header 。

参见 this article了解如何使用 union 来解决您的问题 - 一个带有不同数据的通用 header 。

关于c++ - 在 C++ 中读取不同格式的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/547758/

相关文章:

java - 将值从 .txt 传递到 HTML 文本框(使用 Batch、Java 或 PHP)

c++ - Boost MPL 嵌套 lambda

c++ - CLion STL 容器无法在 Fedora 23 上的调试器中正确显示

c++ - 在数组中保存模板类对象

algorithm - 计算二进制表示中 1 的个数

java - 需要帮助理解这一行

Javascript:在 _.each 循环中对解析后的 JSON 进行排序

c++ - 使用 std::shared_ptr/weak_ptr 简化观察者模式

python-3.x - Python __ror__ 和字典项上的其他二进制方法?

c++ - 约束现有的 Boost.Spirit real_parser (使用策略)