Salve vorrei capire in linea generale (senza quindi parlare di un particolare linguaggio di programmazione), le variabili locali, ovvero dichiarate all'interno delle funzioni, vengono automaticamente cancellate all'uscita della funzione? Quindi parlando di spazio occupato in memoria, si può tranquillamente dire che una variabile globale resta in memoria (occupando quindi spazio) per tutta la durata del programma, a differenza di quelle locali che invece vengono auto-eliminate (garbage collected?).
Se si, in linea di massima un programma ottimizzato dovrebbe avere quanto meno variabili globali possibili?
Inoltre se le variabili locali vengono eliminate, perchè in alcuni casi (a meno che non vado errato) è possibile ugualmente accedervi dall'esterno? Vuol dire che restano in memoria...