Le variabili esterne nel linguaggio C

Le variabili esterne sono variabili definite per essere accessibili a tutte le funzioni di un programma in C.

Nel linguaggio C le funzioni usano variabili locali.

Pertanto, le variabili della funzione main() non sono accessibili dalle altre funzioni del programma e viceversa.

Nota. Per far comunicare la main() con le altre funzioni devo passare i valori in input tramite i parametri nella chiamata della funzione e gestire quelli in output (valori di ritorno) con le istruzioni return. Tuttavia, se ogni funzione deve accedere a una variabile, questa soluzione diventa poco pratica. In questi casi è meglio usare una variabile esterna.

Nel linguaggio C si possono definire anche variabili esterne, sono variabili accessibili e modificabili da ogni funzione del programma.

    Come definire una variabile esterna in C

    Per definire una variabile esterna o globale devo dichiarare la variabile all'inizio del codice sorgente, prima della funzione main() e di ogni altra funzione del programma.

    Un esempio pratico

    In questo programma ho dichiarato una variabile di tipo carattere chiamata focus alla riga 2.

    1. #include <stdio.h>
    2. char focus = 'A';
    3. void funzione() {
    4. printf("La funzione() stampa %c \n", focus);
    5. }
    6. int main()
    7. {
    8. printf("La main() stampa %c \n", focus);
    9. funzione();
    10. return 0;
    11. }

    La variabile focus si trova al di fuori della funzione main() e di ogni altra funzione. Pertanto, è una variabile esterna.

    Sia la main() che la funzione() accedono al contenuto della variabile sia in lettura che in scrittura.

    L'output del programma è

    La main() stampa A
    La funzione() stampa A

    Entrambe le funzioni accedono alla variabile esterna e la stampano.

    Eventualmente possono anche modificarla.

    Nota. La prima ad accedere è la funzione main() perché viene eseguita automaticamente quando lancio il programma. L'altra funzione viene invocata dalla main, quindi è la seconda ad accedere alla variabile globale.

    E così via.


     
    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Libri di approfondimento

    Le funzioni in C