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...")
 
 
(2 intermediate revisions by one other user not shown)
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;
Line 18: Line 18:
 
}
 
}
  
int main ( int argc , char *argv)
+
int main ( int argc , char* argv[])
 
{
 
{
 
foo( 3 , 1 , 2 , 3 );
 
foo( 3 , 1 , 2 , 3 );
Line 27: Line 27:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
-Pirata-

Latest revision as of 20:06, 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 );
}

-Pirata-