16
|
1 //#include<stdio.h>
|
|
2 //#include<stdlib.h>
|
126
|
3 extern int printf(const char*, ...);
|
|
4 extern void exit(int);
|
16
|
5
|
|
6 struct abc {
|
|
7 int a;
|
|
8 double b;
|
|
9 char c;
|
|
10 double *d;
|
|
11 };
|
|
12
|
|
13 struct def {
|
|
14 int d;
|
|
15 struct abc e;
|
|
16 struct abc *f;
|
|
17 };
|
|
18
|
|
19 void print_abc(struct abc a){
|
|
20 printf("\tstruct abc:\n");
|
|
21 printf("\ta=%d, b=%lf, c=%d, d=%p\n", a.a, a.b, a.c, a.d);
|
|
22 }
|
|
23 void print_def(struct def b){
|
|
24 printf("\tstruct def:\n");
|
|
25 printf("\ta=%d, b=%p\n", b.d, b.f);
|
|
26 print_abc(b.e);
|
|
27 }
|
|
28
|
|
29 void cs_exit(int a){
|
|
30 printf("cs_exit : a=%d.\n", a);
|
|
31 exit(a);
|
|
32 }
|
|
33
|
|
34 void cs0(struct abc a, struct def b, int c){
|
|
35 printf("cs0 :\n");
|
|
36 print_abc(a);
|
|
37 print_def(b);
|
|
38 return cs_exit( c*a.a+b.e.c );
|
|
39 }
|
|
40
|
|
41
|
|
42 void cs_goto(int c, struct abc a, struct def b){
|
|
43 printf("cs_return :\n");
|
|
44 print_abc(a);
|
|
45 print_def(b);
|
|
46 return cs0(a, b, c);
|
|
47 }
|
|
48
|
|
49 int main(int argc, char **argv){
|
|
50 struct abc A;
|
|
51 struct def B;
|
|
52 //int a=10, b=20, c=30, d=40, e=50, f=60, g=70;
|
|
53 A.a = 10, A.b = 20.02, A.c = '\0', A.d = 0;
|
|
54 B.d = 30, B.f = &A;
|
|
55 B.e.a = 50, B.e.b = 60.06, B.e.c = '\1', B.e.d = 0;
|
|
56
|
|
57 printf("main :\n");
|
|
58 print_abc(A);
|
|
59 print_def(B);
|
|
60 //printf("20*%d + 30*%d + 40*%d + 50*%d =\n", a, b, c, d);
|
|
61 cs_goto(100, A, B);
|
|
62 return 0;
|
|
63 }
|
|
64
|
|
65
|
|
66
|
|
67
|