Call stack: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
+ titolo sezione, immagine
Funzionamento: fix img: uso PNG
Riga 6:
 
== Funzionamento ==
[[File:Call stack layout.svgpng|thumb|Esempio]]
Il motivo per cui è necessario adottare un ''call stack'' è tenere traccia dei punti in cui ogni subroutine attiva dovrebbe restituire il controllo quando termina l'esecuzione. Se, per esempio, una subroutine DrawSquare (disegna un quadrato) chiama la subroutine DrawLine (disegna una linea) da quattro diversi punti, il codice di DrawLine deve poter conoscere a quale punto tornare terminata l'esecuzione. Questo compito è svolto tipicamente dal codice per ogni chiamata all'interno di DrawSquare inserendo l'indirizzo dell'[[istruzione]] dopo una particolare dichiarazione di chiamata ("return address" o indirizzo di ritorno) all'interno del call stack.