capypad
0 Tage Serie
c / intermediate
Snippet

Variadische Funktionen mit stdarg.h

Variadische Funktionen ermöglichen es, eine variable Anzahl von Argumenten an eine Funktion zu übergeben. Dies wird mit den in <stdarg.h> definierten Makros erreicht. Man muss mindestens ein festes Argument (wie 'count') angeben, um zu wissen, wo die Liste beginnt.

snippet.c
c
1
2
3
4
5
6
7
8
9
10
#include <stdarg.h>
 
void print_log(int count, ...) {
va_list args;
va_start(args, count);
for (int i = 0; i < count; i++) {
printf("%s ", va_arg(args, char*));
}
va_end(args);
}
Erklärung
1
va_list args;
Deklariert eine Variable, die die für die Makros benötigten Informationen enthält.
2
va_arg(args, char*)
Ruft das nächste Argument aus der Liste ab, interpretiert als der angegebene Typ (char*).