0 Tage Serie
c / intermediate
Snippet

Variadische Funktionen mit stdarg.h

Variadische Funktionen können eine variable Anzahl von Argumenten akzeptieren. Durch die Verwendung der Bibliothek 'stdarg.h' können Sie diese Argumente mit den Makros va_list, va_start, va_arg und va_end durchlaufen.

snippet.c
c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdarg.h>
void printNumbers(int count, ...) {
va_list args;
va_start(args, count);
for (int i = 0; i < count; i++) {
printf("%d ", va_arg(args, int));
}
va_end(args);
printf("\n");
}
int main() {
printNumbers(3, 10, 20, 30);
printNumbers(1, 5);
return 0;
}
Erklärung
1
va_list args;
Deklariert eine Variable, die die Liste der Argumente enthält.
2
va_start(args, count);
Initialisiert die Argumentliste beginnend nach dem Parameter 'count'.
3
va_arg(args, int)
Ruft das nächste Argument aus der Liste ab, wobei davon ausgegangen wird, dass es vom Typ 'int' ist.