16
|
1 //#include<stdio.h>
|
|
2 //#include<stdlib.h>
|
|
3
|
126
|
4 extern int printf(const char*, ...);
|
150
|
5 extern void exit(int status);
|
126
|
6
|
16
|
7 __code cs_exit(int , double , char );
|
|
8 __code cs1(int, int, int, int);
|
|
9 __code cs2(double, double, int, double);
|
|
10 void test_goto(void);
|
|
11
|
|
12 int main(int argc, char **argv){
|
|
13 printf("main start\n");
|
|
14 //goto cs2(2.22, 3.33, 4, 5.55);
|
|
15 test_goto();
|
|
16 return 0;
|
|
17 }
|
|
18
|
|
19 void test_goto(){
|
|
20 goto cs1(10, 20, 30, 40);
|
|
21 }
|
|
22
|
|
23 __code cs1(int a, int b, int c, int d){
|
|
24 printf("%4d, %4d, %4d, %4d\n", a, b, c, d);
|
|
25 a += 40, b += 40, c += 40, d += 40;
|
|
26 goto cs2((double)a, (double)b, c, (double)d);
|
|
27 }
|
|
28
|
|
29 __code cs2(double a, double b, int c, double d){
|
|
30 printf("%4d, %4d, %4d, %4d\n", (int)a, (int)b, (int)c, (int)d);
|
|
31 a += 40, b += 40, c += 40, d += 40;
|
|
32 goto cs_exit((int)a, b, (char)c);
|
|
33 }
|
|
34
|
|
35 __code cs_exit(int a, double b, char c){
|
|
36 printf("%4d, %4d, %4d\n", (int)a, (int)b, (int)c);
|
|
37 printf("cs_exit was called!\n");
|
|
38 exit(0);
|
|
39 }
|
|
40
|
|
41
|
|
42 void caller(int a, double b){
|
|
43 cs2(b,20.0,a, 40.4);
|
|
44 cs1(10,20,30, 40);
|
|
45 }
|
|
46
|