1 #include <stdarg.h> 2 3 #define VALUE 0x123456789abcdefLL 4 #define AFTER 0x55 5 6 void 7 test (int n, ...) 8 { 9 va_list ap; 10 int i; 11 12 va_start (ap, n); 13 14 for (i = 2; i <= n; i++) 15 { 16 if (va_arg (ap, int) != i) 17 abort (); 18 } 19 20 if (va_arg (ap, long long) != VALUE) 21 abort (); 22 23 if (va_arg (ap, int) != AFTER) 24 abort (); 25 26 va_end (ap); 27 } 28 29 int 30 main () 31 { 32 test (1, VALUE, AFTER); 33 test (2, 2, VALUE, AFTER); 34 test (3, 2, 3, VALUE, AFTER); 35 test (4, 2, 3, 4, VALUE, AFTER); 36 test (5, 2, 3, 4, 5, VALUE, AFTER); 37 test (6, 2, 3, 4, 5, 6, VALUE, AFTER); 38 test (7, 2, 3, 4, 5, 6, 7, VALUE, AFTER); 39 test (8, 2, 3, 4, 5, 6, 7, 8, VALUE, AFTER); 40 exit (0); 41 } 42