2010-04-29 17 views

risposta

15

Variadic functions

Funzione Variadica sono funzioni che possono assumere un numero variabile di argomenti e sono dichiarate con un'ellissi in luogo dell'ultimo parametro. Un esempio di tale funzione è printf.

Una dichiarazione tipica è

int check(int a, double b, ...); 

Funzione Variadica devono avere almeno un parametro denominato, così, ad esempio,

char *wrong(...); 

non è ammesso nel C.

6

L' i tre punti "..." sono chiamati ellissi. Usandoli in una funzione, questa funzione diventa una funzione variadica. Per utilizzarli in una dichiarazione di funzione significa che la funzione accetterà un numero arbitrario di parametri dopo quelli già definiti.

Ad esempio:

Feeder("abc"); 
Feeder("abc", "def"); 

sono tutte le chiamate funzione valida, tuttavia la seguente non sussisterebbe:

Feeder(); 
3

Funzione Variadica (parametri multipli)

wiki

#include <stdarg.h> 

double average(int count, ...) 
{ 
    va_list ap; 
    int j; 
    double tot = 0; 
    va_start(ap, count); //Requires the last fixed parameter (to get the address) 
    for(j=0; j<count; j++) 
     tot+=va_arg(ap, double); //Requires the type to cast to. Increments ap to the next argument. 
    va_end(ap); 
    return tot/count; 
}