Difference between revisions of "Funzione con numero variabile di parametri."

From Sistemi Operativi
Jump to navigation Jump to search
(Created page with "Esempio di funzione che prende in argomento un numero variable di parametri: <syntaxhighlight lang="C"> #include <stdio.h> #include <stdarg.h> void foo(int narg, ... ) { in...")
 
Line 5: Line 5:
 
#include <stdarg.h>
 
#include <stdarg.h>
  
void foo(int narg, ... )
+
void foo(int narg, ... )   //narg é il numero di argomenti che verranno passati
 
{
 
{
 
int i;
 
int i;

Revision as of 14:48, 10 November 2013

Esempio di funzione che prende in argomento un numero variable di parametri:

#include <stdio.h>
#include <stdarg.h>

void foo(int narg, ... )   //narg é il numero di argomenti che verranno passati
{
	int i;
	va_list  ap; //Il tipo di dato va_list é una lista di variabili
	va_start(ap,narg); // Macro che inizializza ap
	for ( i = 0 ; i < narg ; i++) {
	int this = va_arg( ap , int ); //Macro che dice il tipo e il valore che deve
	printf(" %d ", this);         //avere il prossimo argomento della chiamata
	}
	printf("\n");
	va_end(ap);   //Macro che chiude la macro di inizializzazione 
}

int main ( int argc , char *argv)
{
	foo( 3 , 1 , 2 , 3 );
	foo( 4 , 0 , 54 , 32 , 88 );
	foo( 2 , 3 , 4 );
	foo( 0 );
	foo( 1 , 42 );
}