1 #include <stdio.h>
2 #include <stdarg.h>
3 
4 char buf[50];
5 int
va(int a,double b,int c,...)6 va (int a, double b, int c, ...)
7 {
8   va_list ap;
9   int d, e, f, g, h, i, j, k, l, m, n, o, p;
10   va_start (ap, c);
11 
12   d = va_arg (ap, int);
13   e = va_arg (ap, int);
14   f = va_arg (ap, int);
15   g = va_arg (ap, int);
16   h = va_arg (ap, int);
17   i = va_arg (ap, int);
18   j = va_arg (ap, int);
19   k = va_arg (ap, int);
20   l = va_arg (ap, int);
21   m = va_arg (ap, int);
22   n = va_arg (ap, int);
23   o = va_arg (ap, int);
24   p = va_arg (ap, int);
25 
26   sprintf (buf,
27 	   "%d,%f,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
28 	   a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);
29   va_end (ap);
30 }
31 
main()32 main()
33 {
34   va (1, 1.0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
35   if (strcmp ("1,1.000000,2,3,4,5,6,7,8,9,10,11,12,13,14,15", buf))
36     abort();
37   exit(0);
38 }
39