Correzioni varie.
[gapil.git] / process.tex
index d3fa51d41ca3f9f6e280dd3d4056a61af62507eb..5114b01e40125dba4ab8ed3f3cd436f5471d4893 100644 (file)
@@ -961,14 +961,26 @@ Il passaggio di una variabile \textit{by value} significa che in realt
 che viene passato alla subroutine è una copia del valore attuale di quella
 variabile, copia che la subroutine potrà modificare a piacere, senza che il
 valore originale nella routine chiamante venga toccato. In questo modo non
-occorre preoccuparsi di eventuali effetti delle operazioni della subroutine.
+occorre preoccuparsi di eventuali effetti delle operazioni della subroutine
+sulla variabile passata come parametro.
 
-La maggior parte delle funzioni di libreria e delle system call funziona
-esattamente in questo modo restituendo eventuali risultati alla routine
-chiamante attraverso il valore di ritorno. Talvolta però è necessario che la
-funzione possa restituire indietro alla funzione chiamate un valore relativo
-ad uno dei sui parametri.
+Questo però va inteso nella maniera corretta. Il passaggio \textit{by value}
+vale per qualunque variabile, puntatori compresi; quando però in una
+subroutine si usano dei puntatori (ad esempio per scrivere in un buffer) in
+realtà si va a modificare la zona di memoria a cui essi puntano, per cui anche
+se i puntatori sono copie, i dati a cui essi puntano sono sempre gli stessi, e
+le eventuali modifiche avranno effetto e saranno visibili anche nella routine
+chiamante.
 
+Nella maggior parte delle funzioni di libreria e delle system call i puntatori
+vengono usati per scambiare dati (attraverso buffer o strutture) e le
+variabili semplici vengono usate per specificare parametri; in genere le
+informazioni a riguardo dei risultati vengono passate alla routine chiamante
+attraverso il valore di ritorno.  Talvolta però è necessario che la funzione
+possa restituire indietro alla funzione chiamate un valore relativo ad uno dei
+suoi parametri. Per far questo si usa il cosiddetto \textit{}. Pertanto occorre
+tenere conto che quando si vuole restituire un risultato alla funzione
+chiamante occorre usare un puntatore.
 
 
 
@@ -976,6 +988,7 @@ ad uno dei sui parametri.
 \label{sec:proc_auto_var}
 
 
+
 \subsection{Il controllo di flusso non locale}
 \label{sec:proc_longjmp}