Mercurial > hg > CbC > old > examples
diff struct-array.c @ 0:e59ebf6fe2b0
Initial revision
author | kinjo |
---|---|
date | Sat, 26 Nov 2005 11:36:16 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/struct-array.c Sat Nov 26 11:36:16 2005 +0900 @@ -0,0 +1,59 @@ +#include"my-stdio.h" + +#define OBJECT_MAXNUM 10 + +#define _BUG + +#ifdef _BUG +struct { + float j; // bug + int i; + int k; + int h; +} a[OBJECT_MAXNUM]; + +#else + +struct { + int i; + int j; + int k; + int h; +} a[OBJECT_MAXNUM]; +#endif // _BUG + +code +print_a(int i,code(*ret)(int),void *env) +{ + if(i<OBJECT_MAXNUM){ +#ifdef _BUG + printf("a[%d]: i=%d j=%f k=%d h=%d\n", i, a[i].i,a[i].j,a[i].k,a[i].h); +#else + printf("a[%d]: i=%d j=%d k=%d h=%d\n", i, a[i].i,a[i].j,a[i].k,a[i].h); +#endif + i++; + goto print_a(i,ret,env); + } + goto ret(0),env; +} + +code +init_a(int i,code(*ret)(int),void *env) +{ + if(i<OBJECT_MAXNUM){ + a[i].i=1; + a[i].j=2; + a[i].k=3; + a[i].h=4; + i++; + goto init_a(i,ret,env); + } + goto print_a(0,ret,env); +} + +int +main() +{ + goto init_a(0,return,environment); + return(0); +}