Ik zou graag onderscheid willen maken tussen structures in een list. De list werkt ok, dat is verder niet zo'n probleem, ik heb bijvoorbeeld een functie:
Hierin kunnen verschillende soorten structs staan:
Nu wil ik dus weten wat voor type er op een bepaalde index staat, het is totaal willekeurig. Bijvoorbeel zo:
Alleen hoe weet ik nu welke de juiste is? Ik heb gezocht op typeof (ik gebruik GCC die dat ondersteund iig) maar niet gevonden hoe zoiets zou moeten.
C:
1
2
3
4
| void *list_index(const List * list, int index) { assert(index < list->size); return list->data[index]; } |
Hierin kunnen verschillende soorten structs staan:
C:
1
2
| typedef struct structA { List *x; char *y; List *z; } structA; typedef struct structB { List *u; char *w; } structB; |
Nu wil ik dus weten wat voor type er op een bepaalde index staat, het is totaal willekeurig. Bijvoorbeel zo:
C:
1
2
3
4
| structA *A; structB *B; A = list_index(list, j); B = list_index(list, j); |
Alleen hoe weet ik nu welke de juiste is? Ik heb gezocht op typeof (ik gebruik GCC die dat ondersteund iig) maar niet gevonden hoe zoiets zou moeten.
[ Voor 0% gewijzigd door HammerT op 22-11-2009 18:02 . Reden: typedef moest zijn typeof ]