Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在创建我的第一个真正的二进制解析器(一个 tiff 阅读器)并且有一个关于如何分配内存的问题。我想在我的 TiffSpec 类中为 IFD 条目创建一个结构。这些条目将始终为 12 个字节,但根据该特定条目中指定的类型,末尾的值可能是不同的类型(或者可能只是文件中另一个位置的地址)。投射此类数据的最佳方法是什么?我相信我会处理的最小大小的内存是 1 字节。
在 C++ 中,您应该使用union.
union
这是一种机制,您可以通过该机制定义多个重叠的数据类型,可能带有一个公共标头。
请参阅这篇文章,了解如何使用联合来解决您的问题——一个带有不同数据的通用标题。