X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=process.tex;h=8c7dc49d7655ad0a5cb1e4e4b1a1ed75e21f4198;hp=d9b2c685414530ff82b8e98c59a2659e1b6fe1ca;hb=94b4d603807121b40eef06d22d2b6cd6e06ec7fd;hpb=2414addb7861eb72315a3de58b6f2cb5c83ab6ed diff --git a/process.tex b/process.tex index d9b2c68..8c7dc49 100644 --- a/process.tex +++ b/process.tex @@ -2302,12 +2302,14 @@ usando variabili globali o dichiarate come \direct{extern},\footnote{la \subsection{Il passaggio di un numero variabile di argomenti} \label{sec:proc_variadic} +\index{funzioni!variadic|(} + Come vedremo nei capitoli successivi, non sempre è possibile specificare un numero fisso di argomenti per una funzione. Lo standard ISO C prevede nella -sua sintassi la possibilità di definire delle \index{variadic} -\textit{variadic function} che abbiano un numero variabile di argomenti, -attraverso l'uso nella dichiarazione della funzione dello speciale costrutto -``\texttt{...}'', che viene chiamato \textit{ellipsis}. +sua sintassi la possibilità di definire delle \textit{variadic function} che +abbiano un numero variabile di argomenti, attraverso l'uso nella dichiarazione +della funzione dello speciale costrutto ``\texttt{...}'', che viene chiamato +\textit{ellipsis}. Lo standard però non provvede a livello di linguaggio alcun meccanismo con cui dette funzioni possono accedere ai loro argomenti. L'accesso viene pertanto @@ -2323,11 +2325,11 @@ adeguati. L'uso di una \textit{variadic function} prevede quindi tre punti: a seguire quelli addizionali. \end{itemize*} -Lo standard ISO C prevede che una \index{variadic} \textit{variadic function} -abbia sempre almeno un argomento fisso. Prima di effettuare la dichiarazione -deve essere incluso l'apposito \textit{header file} \file{stdarg.h}; un -esempio di dichiarazione è il prototipo della funzione \func{execl} che -vedremo in sez.~\ref{sec:proc_exec}: +Lo standard ISO C prevede che una \textit{variadic function} abbia sempre +almeno un argomento fisso. Prima di effettuare la dichiarazione deve essere +incluso l'apposito \textit{header file} \file{stdarg.h}; un esempio di +dichiarazione è il prototipo della funzione \func{execl} che vedremo in +sez.~\ref{sec:proc_exec}: \includecodesnip{listati/exec_sample.c} in questo caso la funzione prende due argomenti fissi ed un numero variabile di altri argomenti, che andranno a costituire gli elementi successivi al primo @@ -2515,6 +2517,7 @@ valore speciale per l'ultimo argomento, come fa ad esempio \func{execl} che usa un puntatore \val{NULL} per indicare la fine della lista degli argomenti (vedi sez.~\ref{sec:proc_exec}). +\index{funzioni!variadic|)} \subsection{Il controllo di flusso non locale} \label{sec:proc_longjmp}