1
8
CF封送拆收器不太擅长这种类型的事情,您尝试的是不受支持的。问题是它知道第一个元素没有对齐,但似乎不理解数组中的每个元素也没有对齐。 您可以在本例中看到行为的工作原理:
对于这种类型的结构,我从不让封送拆收器尝试处理每个成员。这个结构很小,所以把每一个单独的项目分解如下:
或者像这样使用一个模拟的“联合体”:
|
2
1
出现问题的原因是数组与“x”重叠。ULUN,C,是UIT64(在C++中,ULUN是UIT32),所以实际上是8字节。 如果将第二个fieldoffset更改为8,或将x更改为uint,则该值将消失。 |