1#include <stdarg.h> 2 3struct tiny 4{ 5 short c; 6 short d; 7}; 8 9f (int n, ...) 10{ 11 struct tiny x; 12 int i; 13 14 va_list ap; 15 va_start (ap,n); 16 for (i = 0; i < n; i++) 17 { 18 x = va_arg (ap,struct tiny); 19 if (x.c != i + 10) 20 abort(); 21 if (x.d != i + 20) 22 abort(); 23 } 24 { 25 long x = va_arg (ap, long); 26 if (x != 123) 27 abort(); 28 } 29 va_end (ap); 30} 31 32main () 33{ 34 struct tiny x[3]; 35 x[0].c = 10; 36 x[1].c = 11; 37 x[2].c = 12; 38 x[0].d = 20; 39 x[1].d = 21; 40 x[2].d = 22; 41 f (3, x[0], x[1], x[2], (long) 123); 42 exit(0); 43} 44 45