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

时间:2009-02-13 21:23:23

标签: c++ binary parsing

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

1 个答案:

答案 0 :(得分:5)

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

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

请参阅this article了解如何使用联盟来解决您的问题 - 下面是不同数据的常见标题。