1#include <stdio.h>
2#include <stdarg.h>
3
4char buf[50];
5int
6va (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
32main()
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