1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#include <stdarg.h> int bar (int a, va_list ap) { int b; do b = va_arg (ap, int); while (b > 10); return a + b; } int foo (int a, ...) { va_list ap; va_start (ap, a); return bar (a, ap); } int main () { if (foo (1, 2, 3) != 3) abort (); return 0; }