Funzione con numero variabile di parametri.
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 );
}