16
|
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
|