In C erlauben ...-Parameter die Übergabe beliebiger Daten. Die interne Verarbeitung funktioniert mit va_start, va_arg und va_list aus stdarg.h.
Regel: mind. ein Parameter muss bekannt sein
Beispiele
Beispiel 1
#include <stdarg.h>
int add(int zahlen, ...) {
va_list zeiger;
int zahl;
va_start(zeiger, zahlen);
do {
zahl = va_arg(zeiger,int);
zahlen += zahl;
} while(zahl != 0);
va_end(zeiger);
return zahlen;
}Aufruf z.B. mit:
printf("%d\n",add(11,12,13,0));Beispiel 2
#include <stdio.h>
#include <stdarg.h>
void printNumbers(int count, ...) {
va_list args; // Deklarieren Sie eine Variable vom Typ va_list.
va_start(args, count); // Initialisieren Sie die Variable mit va_start.
for (int i = 0; i < count; i++) {
int num = va_arg(args, int); // Holen Sie den nächsten Parameter aus der Liste.
printf("%d ", num);
}
va_end(args); // Beenden Sie die Verwendung der va_list.
printf("\n");
}
int main() {
printNumbers(3, 1, 2, 3); // Beispielaufruf mit drei Parametern.
return 0;
}