Mercurial > hg > CbC > CbC_gcc
comparison CbC-examples/test_csp1.c @ 16:4c6926a2b9bc
examples.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 24 Sep 2009 12:51:25 +0900 |
parents | |
children | f9b1a53df341 |
comparison
equal
deleted
inserted
replaced
15:11a6cbe2d14c | 16:4c6926a2b9bc |
---|---|
1 #include<stdio.h> | |
2 #include<stdlib.h> | |
3 | |
4 //static __code (*csp)(int, int, int, int); | |
5 | |
6 __code cs_end(int a){ | |
7 printf("cs_exit : a=%d.\n", a); | |
8 exit(a); | |
9 goto cs_end(a); | |
10 } | |
11 | |
12 __code cs0(int a, int b, int c, int d){ | |
13 //printf("cs0 : a=%d, b=%d, c=%d, d=%d, e=%d, f=%d, g=%d.\n", a, b, c, d, e, f, g); | |
14 printf("cs_cs0 : a=%d, b=%d, c=%d, d=%d.\n", a, b, c, d); | |
15 goto cs_end( (int)(20*a + 30*b + 40*c + 50*d) ); | |
16 } | |
17 | |
18 | |
19 void* freturn(){ | |
20 return cs0; | |
21 } | |
22 __code cs_goto(int a, int b, int c, int d){ | |
23 __code (*csp)(int, int, int, int); | |
24 csp = freturn(); | |
25 printf("csp = %x.\n", csp); | |
26 | |
27 //printf("cs_goto : a=%d, b=%d, c=%d, d=%d, e=%d, f=%d, g=%d.\n", a, b, c, d, e, f, g); | |
28 //printf("cs_goto : a=%d, b=%d, c=%d, d=%d.\n", a, b, c, d); | |
29 //printf("cs_goto : a-4=%d, a-8=%d, a-12=%d, a-16=%d.\n", *(&a-4), *(&a-8), *(&a-12), *(&a-16)); | |
30 //printf("cs_goto : cs0(a, b, c, d)\n"); | |
31 goto csp(b+a, d+b, a+c, c+d); | |
32 } | |
33 | |
34 int function(double a, float b, int c){ | |
35 | |
36 printf("function:\n"); | |
37 printf("a=%lf, b=%f, c=%d\n", a, b, c); | |
38 //goto cs_goto(10, 20, 30, 40); | |
39 goto cs_goto(10, 20, 30, 40); | |
40 } | |
41 | |
42 int main(int argc, char **argv){ | |
43 //csp = cs0; | |
44 function(10.01, 20.02, 30); | |
45 return 0; | |
46 } | |
47 | |
48 |