C Variadic

Da Andreabont's Wiki.

Questo sistema è utilizzato dalla famosa printf, e si basa sulla libreria stdarg.h. Il trucco sta nel passare uno o più parametri obbligatori da cui è possibile dedurre il numero di parametri opzionali inseriti.

Codice

Nel nostro esempio il parametro obbligatorio che passiamo da cui dedurre il numero di parametri successivi è semplicemente il numero di parametri passati.

#include <stdio.h>
#include <stdarg.h>

void miaFunzione(int num, ...) {

   va_list valist;
   va_start(valist, num);

   for (int i = 0; i < num; i++) {
      printf("Intero: %d\n", va_arg(valist, int));
   }

   va_end(valist);

}