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
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*).