我非常喜欢 kaitai 结构,我需要在 kaitai 中重写 010 二进制模板之一。我在我的 010 模板中发现了类似于以下的结构,我想知道如何在 kaitai 中处理它。
例如:1
typedef struct
{
WORD MCC_length;
if(MCC_length>3)
{
UBYTE MCC[3];
}
else if(MCC_length>0)
{
UBYTE MCC[MCC_length];
}
else if(MCC_length==0)
{
UBYTE MCC[3];
}
WORD MNC_length;
if(MNC_length>3)
{
UBYTE MNC[3];
}
else if(MNC_length>0)
{
UBYTE MNC[MNC_length];
}
else if(MNC_length==0)
{
UBYTE MNC[3];
}
}PLMN_Format_2;
例如:2
typedef struct
{
UBYTE M_ID;
UBYTE Cell_1;
UBYTE Cell_2;
UBYTE Cell_3;
UBYTE T_Count;
if(T_Count>0)
{
INTER_MR_Cell cell_info[T_Count]<optimize=false>;
}
UBYTE Location_ID;
if(Location_ID == 1)
{
UBYTE ShapeID;
switch(ShapeID)
{
case 0:
{
UNDEFINED_INFO Undefined_Info;
break;
}
case 1:
{
Type_Point_Info1 Point_Info1;
break;
}
case 2:
{
Type_Point_Info2 Point_Info2;
break;
}
case 3:
{
Type_Point_Info3 Point_Info3;
break;
}
case 4:
{
Type_Loc_Info1 Loc_Info1;
break;
}
case 5:
{
Type_Loc_Info2 Loc_Info2;
break;
}
}
}
}PERIOD_MDT;