Problemi locali variabili:

B

bhattaroshan

Guest
Ciao a tutti, fa le variabili dichiarate in una funzione completamente distrutta quando si esce dalla funzione. Oppure, è che l'indirizzo di memoria allocata dalla variabile può essere sostituito da altri programmi / funzioni in qualsiasi momento?
 
Sì. A meno che la variabile è dichiarata come statica, il suo valore viene perso. Il suo indirizzo di memoria può essere ulteriormente utilizzato da un'altra funzione, e non si ha alcuna garanzia che la prossima volta che viene chiamata la funzione stessa locazione di memoria è assignet a quella variabile. Se si desidera che la variabile di preservare il suo valore tra le chiamate, la dichiareremo come statico all'interno della funzione. Saluti Z
 
I programmi in BASIC. La documentazione dice che una variabile assegnata all'interno di una funzione esiste solo all'interno della funzione. Quando la funzione termina la variabile è respinto. La memoria è presumibilmente rilasciato, e può essere utilizzato per memorizzare altre variabili. Non so se un blocco di memoria finisce per somigliare formaggio svizzero dopo che questo è fatto un certo numero di volte. Funzioni, concettualmente, potrebbe essere chiamato in un modo che forza il programma di allocare blocchi di memoria sempre più a variabili negozio.
 
OK .. Sono venuto a sapere che i dati scritti nella RAM non è necessario essere cancellati dopo l'uscita dalla funzione. Tuttavia, esso può essere cancellato quando necessario. Ma, ancora una volta ho un dubbio come può essere scoperto che la memoria RAM in particolare non è in uso, e quindi può essere sostituito da altre variabili quando necessario?
 
Il metodo più popuar per assegnare lo spazio di memoria per le variabili locali è quello di metterli in pila. Ciò assicurerà la coerenza nel "ciclo di vita" e spazio di rilascio automatico di memoria in seguito. Il metodo è anche fare bene con funzioni rientranti. Compilatori per microcontrollori con lo spazio dello stack limitato (ad esempio PIC16/18, 8051) è necessario per la gestione locale lo spazio variabile esplicitamente e tenere traccia dei livelli di chiamata di funzione. Reentrancy è generalmente causando problemi per questi compilatori.
 

Welcome to EDABoard.com

Sponsor

Back
Top