Ricordo d'aver letto che si può anche (non si deve) definire una variabile globale con l'attributo extern direttamente in un file di intestazione, a patto di dichiararla e inizializzarla in uno qualsiasi dei file di implementazione che includano il file di intestazione stesso.
Ad esempio, potrei definire la variabile...
extern int gPincoPalla;
...nel file mia_intestazione.h, quindi dichiarare la variabile...
int gPincoPalla = 24;
...nel file mia_implementazione.c che include il file mia_intestazione.h.
La stessa variabile si può anche utilizzare (senza nessun ulteriore "richiamo" esplicito) anche nei file mio_secondo_file.c e mio_terzo_file.c, a patto che entrambi includano mia_intestazione.h.
Ho già provato a fare diverse volte qualcosa del genere ed è sempre filato tutto liscio come l'olio. E' davvero pratico.
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti. |