3

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

4

1 回答 1

5

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

这是一种机制,您可以通过该机制定义多个重叠的数据类型,可能带有一个公共标头。

请参阅这篇文章,了解如何使用联合来解决您的问题——一个带有不同数据的通用标题。

于 2009-02-13T21:27:27.410 回答