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;
}