Il progetto è difficile, questo è da fissarlo in testa.
Eccoti un esempio per le strutture derivate.
codice:struct V1 { int cSize; int campo1; }; struct V2 { int cSize; int campo1; int campo2; };
Le 2 strutture evidentemente differiscono per la loro grandezza.
Dunque puoi usarle entrambe in un'unica funzione che prende un puntatore alla struttura base e fare poi considerazioni sulla grandezza. Esempio pratico
codice:V2 v; v.campo1 = 2; v.campo2 = 3; v.cSize = sizeof(V2); Funzione((V1*)&V2); void Funzione(V1 *p) { if (p->cSize == sizeof(V1)) {//codice per V1} if (p->cSize == sizeof(V2)) {V2 *pp = (V2*)&p; //altro codice} }

Rispondi quotando