编辑:在评论之后,这是一个可行的解决方案,但它需要对齐您的代理类型,在我的情况下,这只能用二的幂值来完成。
#define A(t) __declspec(align(t))
struct C
{
int a;
int b;
int c;
int junk;
};
A(16) struct D
{
int z;
};
A(16) struct DB {
int junk;
int z;
};
A(16) struct DC {
int junk[2];
int z;
};
typedef union
{
D da;
DB db;
DC dc;
} Ui;
typedef union
{
C c[50];
Ui d[50];
} U;
原始(不完整)答案:
每种类型都被单独解析和可视化。因此,在解析每个 x 元素时,无法存储该数据以供以后聚合 a、b 和 c。
但是,您可以更改代码,使重叠(联合)类型与您的数组完全匹配。然后为每种类型编写单独的可视化工具:
__decltypestruct C { int a,b,c; };
struct D { int a[10], b[10], c[10]; };
union {
C c[10];
D d;
};