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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }