Tolti un puoi di todo, chiarita la parte sulle calling convention,
[gapil.git] / process.tex
index 3f500455336e5b8f1bfb686e4fdbfc1d1a95649a..9d749c03f2280a6f22993607f2ec8b830eafcdf8 100644 (file)
@@ -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