X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=process.tex;h=831c6482e8e4b096847d7bf8a392d1b9225cba85;hp=aeacae83df46fd91a9f3c6a104236432b3f48ca5;hb=17bae834f41549575a11ddf444d97de8d575269e;hpb=bb7af0b0462a0f09ae13f617ef8f40c24e1857cf diff --git a/process.tex b/process.tex index aeacae8..831c648 100644 --- a/process.tex +++ b/process.tex @@ -173,9 +173,9 @@ pulizia al programmatore che la utilizza. all'utente, avere la possibilità di effettuare automaticamente la chiamata ad una funzione che effettui tali operazioni all'uscita dal programma. A questo scopo lo standard ANSI C prevede la possibilità di registrare un certo numero -funzioni che verranno eseguite all'uscita dal programma (sia per la chiamata -ad \func{exit} che per il ritorno di \func{main}). La prima funzione che si -può utilizzare a tal fine è \funcd{atexit} il cui prototipo è: +di funzioni che verranno eseguite all'uscita dal programma (sia per la +chiamata ad \func{exit} che per il ritorno di \func{main}). La prima funzione +che si può utilizzare a tal fine è \funcd{atexit} il cui prototipo è: \begin{prototype}{stdlib.h}{void atexit(void (*function)(void))} Registra la funzione \param{function} per la chiamata all'uscita dal programma. @@ -185,8 +185,8 @@ pu \end{prototype} \noindent la funzione richiede come argomento l'indirizzo di una opportuna funzione di pulizia da chiamare all'uscita del programma, che non deve -prendere argomenti e non deve ritornare niente (deve essere essere cioè -definita come \code{void function(void)}). +prendere argomenti e non deve ritornare niente (deve essere cioè definita come +\code{void function(void)}). Un'estensione di \func{atexit} è la funzione \funcd{on\_exit}, che le \acr{glibc} includono per compatibilità con SunOS, ma che non è detto sia @@ -1401,7 +1401,7 @@ stack all'indirizzo dove sono stati salvati i parametri, normale pensare di poter effettuare questa operazione. In generale però possono esistere anche realizzazioni diverse, per questo -motivo \macro{va\_list} è definito come \textsl{tipo opaco}\index{tipo opaco} +motivo \macro{va\_list} è definito come \textsl{tipo opaco}\index{tipo!opaco} e non può essere assegnato direttamente ad un'altra variabile dello stesso tipo. Per risolvere questo problema lo standard ISO C99\footnote{alcuni sistemi che non hanno questa macro provvedono al suo posto @@ -1584,13 +1584,13 @@ e statiche mantengono i valori che avevano al momento della chiamata di \func{longjmp}, ma quelli delle variabili automatiche (o di quelle dichiarate \direct{register}\footnote{la direttiva \direct{register} del compilatore chiede che la variabile dichiarata tale sia mantenuta, nei limiti del - possibile, all'interno di un registro del processore. Questa direttiva - origina dai primi compilatori, quando stava al programmatore scrivere codice - ottimizzato, riservando esplicitamente alle variabili più usate l'uso dei - registri del processore. Oggi questa direttiva oggi è in disuso dato che - tutti i compilatori sono normalmente in grado di valutare con maggior - efficacia degli stessi programmatori quando sia il caso di eseguire questa - ottimizzazione.}) sono in genere indeterminati. + possibile, all'interno di un registro del processore. Questa direttiva è + originaria dell'epoca dai primi compilatori, quando stava al programmatore + scrivere codice ottimizzato, riservando esplicitamente alle variabili più + usate l'uso dei registri del processore. Oggi questa direttiva è in disuso + dato che tutti i compilatori sono normalmente in grado di valutare con + maggior efficacia degli stessi programmatori quando sia il caso di eseguire + questa ottimizzazione.}) sono in genere indeterminati. Quello che succede infatti è che i valori delle variabili che sono tenute in memoria manterranno il valore avuto al momento della chiamata di