X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=process.tex;h=9d749c03f2280a6f22993607f2ec8b830eafcdf8;hp=3f500455336e5b8f1bfb686e4fdbfc1d1a95649a;hb=6ffcce00491cea4ac7c621fe412269f15ee23f57;hpb=735e4c85ad9c58064b35113ea3e85832ae9a4111 diff --git a/process.tex b/process.tex index 3f50045..9d749c0 100644 --- a/process.tex +++ b/process.tex @@ -402,10 +402,16 @@ seguenti segmenti: viene il nome \itindex{stack} \textit{stack}) in sequenza uno sull'altro; in questo modo le funzioni possono essere chiamate ricorsivamente. Al ritorno della funzione lo spazio è automaticamente rilasciato e - ``\textsl{ripulito}''. La pulizia in C e C++ viene fatta dal - chiamante.\footnote{a meno che non sia stato specificato l'utilizzo di una - calling convention diversa da quella standard.} -% TODO verificare le modalità di cambiamento della calling convention + ``\textsl{ripulito}''.\footnote{il compilatore si incarica di generare + automaticamente il codice necessario, seguendo quella che viene chiamata + una \textit{calling convention}; quella standard usata con il C ed il C++ + è detta \textit{cdecl} e prevede che gli argomenti siano caricati nello + stack fal chiamante da destra a sinistra, e che si il chimante stesso ad + eseguire la ripulitura dello stack al ritorno della funzione, se ne + possono però utilizzare di alternative (ad esempio nel pascal gli + argomenti sono inseriti da sinistra a destra ed è compito del chiamato + ripulire lo stack), in genere non ci si deve preoccupare di questo + fintanto che non si mescolano funzioni scritte con linguaggi diversi.} La dimensione di questo segmento aumenta seguendo la crescita dello \itindex{stack} \textit{stack} del programma, ma non viene ridotta quando