我正在创建我的第一个真正的二进制解析器(一个tiff阅读器),并且有一个关于如何分配内存的问题.我想在我的TiffSpec类中为IFD条目创建一个结构.这些条目将始终为12个字节,但根据该特定条目中指定的类型,末尾的值可以是不同类型(或者可能只是文件中另一个位置的地址).如何铸造这类数据的最佳方法是什么?我认为我将要处理的最小内存将是1个字节.
在C++中你应该使用a union
.
这是一种机制,您可以通过该机制定义多个重叠的数据类型,可能还有一个公共标头.
请参阅此文章,了解如何使用联合确切地解决您的问题 - 下面是不同数据的常见标题.