Come da oggetto, vi chiedo un aiuto sulla dichiarazione/definizione di variabili globali in C, che devono essere viste e /o modificate da più files.
Ho creato un albero binario di ricerca in un file BistTree.c (con il relativo header con i prototipi in un file BistTree.h)
I nodi dell'albero hanno come campi un array, e una variabile int, che chiamo id.
io ho bisogno di una variabile int globale, che chiamo ID, che all'inizio voglio sia 0. Ed ogni volta che inserisco un nodo in un albero, assegno ID a id, poi incremento ID. Cosicchè la variabile globale sia sempre aggiornata all'inserimento di ogni nodo.
solo che non so come si gestiscono le variabili globali esterne. Ho leggiucchiato su internet ma sto divagando e più perdendo tempo che altro.
In Bist_Tree.h ho questa situazione:
Codice: Seleziona tutto
#ifndef BIST_ITEM_H
#define BIST_ITEM_H
typedef int *Bist_Key; /* La chiave negli alberi è una configurazione assumibile dai contenitori */
struct configurazione{ /* Una struct configurazione è un tipo che definisce una configurazione dei contenitori, e il suo id associato */
Bist_Key livello;
int id;
};
typedef struct configurazione *Bist_Item; /* Gli Item nell'albero sono puntatori a configurazioni */
Codice: Seleziona tutto
extern int ID;
Bist_Item newBist_Item( Bist_Key k ){
Bist_Item it = my_malloc( sizeof(struct configurazione) );
it->livello = k;
it->id = ID;
ID++;
return it;
}
Codice: Seleziona tutto
int ID = 0;
int main(void){...}E' corretta questa procedura? grazie in anticipo.
