0
|
1 #include "stdio.h"
|
|
2
|
|
3 int
|
|
4 main(ac,av)
|
|
5 int ac;
|
|
6 char *av[];
|
|
7 {
|
|
8 int i;
|
|
9
|
|
10 if(ac!=2)
|
|
11 return(0);
|
|
12 i=main0(ac,av,return,environment);
|
|
13 fprintf(stderr,"1: %s %d\n",av[0],i);
|
|
14 return i;
|
|
15 }
|
|
16
|
|
17 int
|
|
18 main0(ac,av,ret,retenv)
|
|
19 int ac;
|
|
20 char *av[];
|
|
21 code (*ret)();
|
|
22 void *retenv;
|
|
23 {
|
|
24 int i,j,k;
|
|
25 i=123;
|
|
26 j=456;
|
|
27 k = atoi(av[1]);
|
|
28 fprintf(stderr,"2: av=%x av[0]=%x %s\n",av,av[0],av[0]);
|
|
29 goto code0(i,j,k,av,ret,retenv,return,environment);
|
|
30 }
|
|
31
|
|
32 code code0(i,j,k,av,ret,retenv,ret1,ret1env)
|
|
33 int i,j,k;
|
|
34 char *av[];
|
|
35 code (*ret)();
|
|
36 void *retenv;
|
|
37 code (*ret1)();
|
|
38 void *ret1env;
|
|
39 {
|
|
40 char *p;
|
|
41 p = av[0];
|
|
42 fprintf(stderr,"3: i=%d j=%d k=%d av=%x p=%s\n",i,j,k,av,p);
|
|
43 goto code1(i,j,k,av,ret,retenv,ret1,ret1env);
|
|
44 }
|
|
45
|
|
46 code code1(i,j,k,av,ret,retenv,ret1,ret1env)
|
|
47 int i,j,k;
|
|
48 char *av[];
|
|
49 code (*ret)();
|
|
50 void *retenv;
|
|
51 code (*ret1)();
|
|
52 void *ret1env;
|
|
53 {
|
|
54 fprintf(stderr,"4: %s\n",av[0]);
|
|
55 goto code2(i,j,k,av,ret,retenv,ret1,ret1env);
|
|
56 }
|
|
57
|
|
58 code code2(i,j,k,av,ret,retenv,ret1,ret1env)
|
|
59 int i,j,k;
|
|
60 char *av[];
|
|
61 code (*ret)();
|
|
62 void *retenv;
|
|
63 code (*ret1)();
|
|
64 void *ret1env;
|
|
65 {
|
|
66 fprintf(stderr,"5: %s\n",av[0]);
|
|
67 fprintf(stderr,"5: i=%d j=%d k=%d av=%x\n",i,j,k,av);
|
|
68 if (k>3)
|
|
69 goto (*ret1)(1234),ret1env;
|
|
70 goto (*ret)(1234),retenv;
|
|
71 }
|