[an error occurred while processing this directive]
|
void FUNC (int type_id, void *type);
{
GSTRUCT_A* pA = (GSTRUCT_A*)type;
GSTRUCT_B* pA = (GSTRUCT_B*)type;
GSTRUCT_C* pA = (GSTRUCT_C*)type;
type1* p1;
type2* p2;
type3* p3;
switch(type_id)
{
case STRUCT_A_ID:
p1 = pA->t1;
p2 = pA->t2;
p3 = pA->t3;
break;
case STRUCT_B_ID:
p1 = pB->t1;
.....
}
..........
пользуемся указателями p1 p2 p3;
..........
}
а при вызове приводить адрес к (void*) не надо
FUNC(STRUCT_A_ID, &GSTRUCT_A);
FUNC(STRUCT_B_ID, &GSTRUCT_B);
FUNC(STRUCT_С_ID, &GSTRUCT_С);