1.当一个结构体分为两个部分,其中后一部分对偏移量有要求,但前一部分的结构无法完全定义或长度不足之时可以使用共用体占位补充长度
例如要求body部分固定出现在128字节偏移处
struct example{
union{
struct A i;
char space[128];
}header;
int body;//固定出现在128字节偏移处
};
2.当一个结构体中的一部分需要根据情况使用多种type来定义之时
例如多种类型cfis共同占用header部分,但一次定义只使用其中一种结构
struct example{
union{
struct cfis_type_0x27 type_27;
struct cfis_type_0x34 type_34;
struct cfis_type_0xa1 type_a1;
}header;
struct acmd acmd ;
};