0087-variadic.c - scc - simple c99 compiler
(HTM) git clone git://git.simple-cc.org/scc
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
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 }