Mercurial > hg > CbC > CbC_examples
annotate protoGenCheck/noProtoFibonacci.c @ 8:37a10fd62ea9
add programs for prototype generation checking
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 21 Feb 2015 21:19:46 +0900 |
parents | |
children |
rev | line source |
---|---|
8
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 /* |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 Prototype generator check. CbC compiler should compile this code without errors and warnings. |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 Author : Kaito Tokumori |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 */ |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 #include <stdio.h> |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 #include <stdlib.h> |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 int main(int argc, char **argv) { |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 int i; |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 i = atoi(argv[1]); |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 goto fibonacci(i); |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 } |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 __code fibonacci(int loop) { |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 goto calcLoop(0, 1, loop); |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 } |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 __code calcLoop(int before, int current, int loop) { |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 if ( loop > 1) { |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 goto calcLoop(current, before+current, loop-1); |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 }else{ |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 goto print_answer(current); |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 } |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 } |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 __code print_answer(int answer) { |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 printf("factorial = %d\n",answer); |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 exit(0); |
37a10fd62ea9
add programs for prototype generation checking
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 } |