1 /* 2 * max-variabel.c 3 * 4 * zeigt eine Funktion mit variabler Anzahl von Argumenten. 5 * Beispielprogramm zur Systemprogrammierung, Teil 4. 6 * 7 * Autor: H.Drachenfels 8 * Version: 2.8.2019 9 */
10 #include <stdio.h>
11 #include <stdarg.h>
12
13 static int max(int, int, ...);
14
15 int main(void)
16 {
17 printf("%d\n", max(1, 10));
18 printf("%d\n", max(2, 11, 12));
19 printf("%d\n", max(3, 13, 14, 15));
20 printf("%d\n", max(3, 13, 6.7)); // variable Argumentliste nicht typsicher!
21 }
22
23 static int max(int n, int a, ...)
24 {
25 va_list args;
26 va_start(args, a);
27
28 int m = a;
29 for (int i = 1; i < n; ++i)
30 {
31 int b = va_arg(args, int);
32 if (m < b)
33 {
34 m = b;
35 }
36 }
37
38 return m;
39 }
40