Mercurial > hg > CbC > CbC_gcc
view CbC-examples/tmp4.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 5d30d517ebed |
children |
line wrap: on
line source
#define __environment _CbC_environment #define __return _CbC_return #include "stdio.h" int main0(int ac, char *av[]); __code code0( int i,int j,int k, char *av[], __code (*ret)(), void *retenv); __code code1( int i,int j,int k, char *av[], __code (*ret)(), void *retenv); __code code2( int i,int j,int k, char *av[], __code (*ret)(), void *retenv); int main(ac,av) int ac; char *av[]; { int i; i=main0(ac,av); fprintf(stdout,"#0012:1: %s %d\n",av[0]+2,i); return 0; } int main0(ac,av) int ac; char *av[]; { int i,j,k; i=123; j=456; k=789; fprintf(stdout,"#0025:2: %s\n",av[0]+2); goto code0(i,j,k,av,__return,__environment); } __code code0(i,j,k,av,ret,retenv) int i,j,k; char *av[]; __code (*ret)(); void *retenv; { char *p; p = av[0]+2; fprintf(stdout,"#0037:3: i=%d j=%d k=%d av[0]=%s p=%s\n",i,j,k,av[0]+2,p); goto code1(i,j,k,av,ret,retenv); } __code code1(i,j,k,av,ret,retenv) int i,j,k; char *av[]; __code (*ret)(); void *retenv; { fprintf(stdout,"#0047:4: %s\n",av[0]+2); goto code2(i,j,k,av,ret,retenv); } __code code2(i,j,k,av,ret,retenv) int i,j,k; char *av[]; __code (*ret)(); void *retenv; { fprintf(stdout,"#0057:5: %s\n",av[0]+2); fprintf(stdout,"#0058:5: i=%d j=%d k=%d\n",i,j,k); goto (*ret)(1234,retenv); }