return *reinterpret_cast<UInt32*>((reinterpret_cast<char*>(this) + 2));
结构是 pragma packed 1 并且包含一堆 uint、char、short 字段...
既然它是 UInt32,是否应该首先将其 reinterpret_cast 改为 unsigned char* 或者它是否重要?
此外,速度在这里很关键,我相信 reinterpret_cast 是最快的演员,而不是 static_cast。
编辑:该结构实际上由两个单字节字段组成,后跟大约 16 个其他结构的联合,其中 15 个将 UInt32 作为其第一个字段。我快速检查一下它不是没有的,然后对 2 字节偏移量执行 reinterpret_cast。