0086-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
---
0086-variadic.c (501B)
---
1 #define CALL(FUN, ...) FUN(__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 (CALL(none))
46 return 1;
47 if (CALL(one, 1))
48 return 2;
49 if (CALL(two, 1, 2))
50 return 3;
51 if (CALL(three, 1, 2, 3))
52 return 4;
53
54 return 0;
55 }