Funzione con numero variabile di parametri.

From Sistemi Operativi
Revision as of 14:48, 10 November 2013 by Pirata (talk | contribs)
Jump to navigation Jump to search

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 );
}