Mercurial > hg > CbC > old > examples
diff struct-interface.c @ 3:f03bba45ae77
*** empty log message ***
author | kinjo |
---|---|
date | Sun, 11 Dec 2005 21:46:14 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/struct-interface.c Sun Dec 11 21:46:14 2005 +0900 @@ -0,0 +1,45 @@ +// interfaceに1つだけのstructを使う +#include"my-stdio.h" +#define USE_BREAKP +#include"dbg.h" + +struct interface { + int a; + int b; + float c; + int d; + code (*ret)(int); + void *env; +} intf; + +code +testexit(struct interface *i) +{ + goto i->ret(0),i->env; +} + +code +printit(struct interface *i) +{ + BREAKP(printit,i); + printf("%d %d %f %d\n",i->a,i->b,i->c,i->d); + goto testexit(i); +} + +code +test0(struct interface *i) +{ + i->a=10; + i->b=20; + i->c=30; + i->d=40; + goto printit(i); +} + +int +main() +{ + intf.ret=return; + intf.env=environment; + goto test0(&intf); +}