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