Il passaggio dei parametri

  • Generalmente i parametri vengono passati nello stack, insieme con l'indirizzo di ritorno della funzione
  • Il programma chiamante pone sullo stack i parametri (se per valore) o i loro indirizzi (se per riferimento), quindi esegue l'istruzione di "call" alla funzione
  • In alcuni casi nello stack viene anche posta una "variabile" per il valore di ritorno, prima dei parametri
  • La funzione, crea le sue variabili locali (automatiche) allocando spazio nello stack.
  • L'area contenente i parametri, il valore di ritorno, il punto della funzione chiamante cui ritornare e le variabili locali prende il nome diframe
  • La funzione accede ai parametri tramite un puntatore al frame ed eventualmente pone il valore di ritorno nella variabile approntata allo scopo.
  • Al termine la funzione elimina le sue variabili dallo stack
  • A seconda del linguaggio la funzione oppure il programma chiamante eliminano i parametri dallo stack
  • A volte, per ottenere una maggiore efficenza, i parametri vengono posti nei registri della CPU, al posto che nello stack
  • Se il linguaggio non prevede una variabile nel frame per il valore di ritorno, esso viene lasciato nei registri della CPU

© Ing. Stefano Salvi - All rights reserved