Mercurial > hg > CbC > CbC_gcc
comparison CbC-examples/tmp4.c @ 78:365b84b6fe04
more examples
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 20 Sep 2011 17:32:20 +0900 |
parents | |
children | 5d30d517ebed |
comparison
equal
deleted
inserted
replaced
77:65b2ea5f1266 | 78:365b84b6fe04 |
---|---|
1 #define __environment _CbC_environment | |
2 #define __return _CbC_return | |
3 | |
4 #include "stdio.h" | |
5 | |
6 int | |
7 main(ac,av) | |
8 int ac; | |
9 char *av[]; | |
10 { | |
11 int i; | |
12 i=main0(ac,av); | |
13 fprintf(stdout,"#0012:1: %s %d\n",av[0]+2,i); | |
14 return 0; | |
15 } | |
16 | |
17 int | |
18 main0(ac,av) | |
19 int ac; | |
20 char *av[]; | |
21 { | |
22 int i,j,k; | |
23 i=123; | |
24 j=456; | |
25 k=789; | |
26 fprintf(stdout,"#0025:2: %s\n",av[0]+2); | |
27 goto code0(i,j,k,av,__return,__environment); | |
28 } | |
29 | |
30 __code code0(i,j,k,av,ret,retenv) | |
31 int i,j,k; | |
32 char *av[]; | |
33 __code (*ret)(); | |
34 void *retenv; | |
35 { | |
36 char *p; | |
37 p = av[0]+2; | |
38 fprintf(stdout,"#0037:3: i=%d j=%d k=%d av[0]=%s p=%s\n",i,j,k,av[0]+2,p); | |
39 goto code1(i,j,k,av,ret,retenv); | |
40 } | |
41 | |
42 __code code1(i,j,k,av,ret,retenv) | |
43 int i,j,k; | |
44 char *av[]; | |
45 __code (*ret)(); | |
46 void *retenv; | |
47 { | |
48 fprintf(stdout,"#0047:4: %s\n",av[0]+2); | |
49 goto code2(i,j,k,av,ret,retenv); | |
50 } | |
51 | |
52 __code code2(i,j,k,av,ret,retenv) | |
53 int i,j,k; | |
54 char *av[]; | |
55 __code (*ret)(); | |
56 void *retenv; | |
57 { | |
58 fprintf(stdout,"#0057:5: %s\n",av[0]+2); | |
59 fprintf(stdout,"#0058:5: i=%d j=%d k=%d\n",i,j,k); | |
60 goto (*ret)(1234,retenv); | |
61 } |