0087-variadic.c (491B)
1 #define ARGS(...) __VA_ARGS__ 2 3 int 4 none() 5 { 6 return 0; 7 } 8 9 int 10 one(int a) 11 { 12 if (a != 1) 13 return 1; 14 15 return 0; 16 } 17 18 int 19 two(int a, int b) 20 { 21 if (a != 1) 22 return 1; 23 if (b != 2) 24 return 1; 25 26 return 0; 27 } 28 29 int 30 three(int a, int b, int c) 31 { 32 if (a != 1) 33 return 1; 34 if (b != 2) 35 return 1; 36 if (c != 3) 37 return 1; 38 39 return 0; 40 } 41 42 int 43 main() 44 { 45 if (none(ARGS())) 46 return 1; 47 if (one(ARGS(1))) 48 return 2; 49 if (two(ARGS(1, 2))) 50 return 3; 51 if (three(ARGS(1, 2, 3))) 52 return 4; 53 return 0; 54 }