In questo caso x e' detto "parametro formale" in quanto serve a rappresentare all'interno della funzione, il valore che assumerà, di chiamata in chiamata, attraverso l'assegnazione del "parametro attuale", nel nostro caso 8.Originariamente inviato da marcusbasic
prima di tutto ti ringrazio per la disponibilità tipo tutor...
int funzione(int x)
{
return(x+2);
}
void main()
{
int z;
z = funzione(8);
}
...
ma noi il valore di "x" dove lo abbiamo dichiarato?
A runtime, il valore 8 (parametro attuale) viene assegnato alla x (parametro formale) e con quel valore viene eseguito il codice all'interno della funzione. Questa eseguirà la riga
return(8+2);
Se chiamata nuovamente con altro valore, ad esempio
la seconda volta, viene assegnato dal runtime il valore 15 alla x e con quel valore lavora.codice:void main() { int z; z = funzione(8); z = funzione(15); }
Per assegnare il parametro attuale a quello formale, il compilatore genera il codice adeguato che si serve dello stack. In pratica genera del codice tipo
Push 8 (inserisce 8 nello stack)
Call funzione (passa ad eseguire la funzione)
e nella funzione
Pop x (preleva un valore dallo stack e lo inserisce nella x)
... (lavora con la x)

Rispondi quotando