Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
static int counter = 1;<br />
printf("Funzione eseguita %d"<br />
" volte\n", counter++);<br />
Esempio di uso di un blocco e di variabili statiche <strong>per</strong> il debugging di un programma:<br />
{<br />
}<br />
static int cnt = 0;<br />
fprintf(stderr, "** debug: cnt=%d v=%d\n",<br />
cnt++, v);<br />
10.7 Variabili extern<br />
Vengono poste automaticamente nella classe di memorizzazioneextern classe le variabili dichiarate<br />
a livello globale, cioè al di fuori di qualsiasi blocco o funzione. Si può accedere al valore di queste<br />
variabili anche all’interno di un blocco o di una funzione.<br />
int var_globale;<br />
int main()<br />
{<br />
extern int var_globale;<br />
...<br />
var_globale = 10;<br />
...<br />
printf("%d", var_globale);<br />
return 0;<br />
}<br />
Se la parola chiave extern viene esplicitamente utilizzata si indica al compilatore che la variabile<br />
viene definita altrove, cioè si dichiara cioè semplicemente l’esistenza di una variabile di quel tipo.<br />
In genere non si usa la extern all’interno di una funzione <strong>per</strong> indicare che la variabile utilizzata<br />
è globale: si usa la variabile e basta, in quanto le variabili globali sono implicitamente disponibili<br />
nella funzione.<br />
L’uso della extern è invece utile quando, in programmi composti da più file, la definizione di<br />
una variabile e/o funzione viene fatta in un file diverso rispetto al file sorgente che la utilizza. In<br />
quest’ultimo file sorgente la dichiarazione diviene extern.<br />
10.8 Inizializzazioni<br />
In assenza di inizializzazioni:<br />
• le variabili globali vengono inizializzate a 0<br />
• le variabili static vengono inizializzate a 0<br />
• le variabili semplici static e globali vengono inizializzate tramite espressioni costanti<br />
107