1 #include <stdarg.h>
2
3 struct s { int x, y; };
4
f(int attr,...)5 f (int attr, ...)
6 {
7 struct s va_values;
8 va_list va;
9 int i;
10
11 va_start (va, attr);
12
13 if (attr != 2)
14 abort ();
15
16 va_values = va_arg (va, struct s);
17 if (va_values.x != 0xaaaa || va_values.y != 0x5555)
18 abort ();
19
20 attr = va_arg (va, int);
21 if (attr != 3)
22 abort ();
23
24 va_values = va_arg (va, struct s);
25 if (va_values.x != 0xffff || va_values.y != 0x1111)
26 abort ();
27
28 va_end (va);
29 }
30
main()31 main ()
32 {
33 struct s a, b;
34
35 a.x = 0xaaaa;
36 a.y = 0x5555;
37 b.x = 0xffff;
38 b.y = 0x1111;
39
40 f (2, a, 3, b);
41 exit (0);
42 }
43