I motivi li hai detti tu, aggiungo che le variabili globali 'espongonno troppo l'implementazione' di certe strutture, menre sarebbe meglio creare un'interfaccia piu pulita che il programmatore puo seguire, senza fare affidamento sul fatto che un certo valore si trova in una variabile globale con un certo nome. Ciò facilita la manutenzione, l'ampliamento e la modifica del codice. Sicuramente le var. globali offrono una comoda scorciatoia, ma se sono troppo usate significa che il codice non è ben strutturato. Questo discorso non vale tanto per il c, ma soprattutto per i linguaggi ad oggetti, come c++ (non vale per il java in cui non si possono neppure definire delle var. globali!),
![]()