annotate CbC-examples/test_tailcall1.c @ 120:f93fa5091070

fix conv1.c
author mir3636
date Thu, 08 Mar 2018 14:53:42 +0900
parents 4c6926a2b9bc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include<stdio.h>
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 void B(int a, int b, int c){
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 printf("B: a=%d, b=%d, c=%d\n", a, b, c);
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 return ;
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 }
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 void* freturn(){
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 return B;
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 }
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 void A(int a, int b, int c, int d){
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 void (*fp)(int, int, int);
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 fp = freturn();
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 printf("A: a=%d, b=%d, c=%d, d=%d\n", a, b, c, d);
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 return fp(a, b, c+d);
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 //return B(a, b, c+d);
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 }
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 int main(int argc, char **argv){
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 printf("main: \n");
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 //fp = B;
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 A(10, 20, 30, 40);
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 return 0;
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 }
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
4c6926a2b9bc examples.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28