PDA

Visualizza la versione completa : [C] Funzioni con Parametro (...)


nightfall
21-01-2004, 17:49
Che cosa vogliono dire i puntini come parametri delle funzioni ?

esempi di questi si trovano nella printf e nella scanf ma anche nella
printk (Funzione di Linux)

int printk(const char *fmt, ...)

infinitejustice
21-01-2004, 18:04
:master: i puntini nn li ho mai visti se non nella descrizione del prototipo.

iguana13
21-01-2004, 19:43
Significa che hanno un numero variabile di argomenti.

nightfall
21-01-2004, 19:50
Un numero variabile di argomenti uguali ai precedenti o possono anche essere diversi ?

Luc@s
21-01-2004, 19:55
Ad una funzione possibile passare anche un numero variabile di argomenti, un esempio tipico la funzione printf() dove il primo argomento, costituito dalla stringa di conversione serve a determinare il numero ed il tipo degli argomenti che seguono. Per determinare il corretto funzionamento di una funzione con un numero variabile di argomenti sono necessarie le seguenti chiamate :

void va_start(va_list, lastfix);
type va_arg(va_list ap, type);
void va_end(va_list ap);

Queste sono implementate spesso come macro nel file stdarg.h e servono ad individuare rispettivamente:
il puntatore iniziale al primo argomento della lista (va_start)
a ritornare il valore dell'argomento puntato
ad attribuire ad ap il puntatore all'argomento successivo (va_arg)
ad effettuare le necessarie operazioni per consentire il corretto ritorno alla funzione chiamata (va_end)

Loading