Mercurial > hg > CbC > old > device
view test/tmp7.c @ 33:8500dbb69dd9
bad macro processing. give up this method.
author | kono |
---|---|
date | Sun, 09 Feb 2003 23:17:23 +0900 |
parents | ca0bce3b4810 |
children | 412ad2e6c2a2 |
line wrap: on
line source
int k=3; struct aa { int a[100]; } aaa,bbb; void tmp(void); struct aa main0(); struct aa main0() { struct aa ccc; ccc.a[55]=123; return ccc; } void main2(struct aa a1) { printf("main2 a1.a[99] %d\n",a1.a[99]); printf("main2 a1.a[55] %d\n",a1.a[55]); } void main1(struct aa a1) { printf("main1 a1.a[0] %d\n",a1.a[0]); a1.a[55]=44; if (a1.a[0]) main2(a1); else main2(aaa); } main(ac,av) int ac; char *av[]; { register int i; register char *p; int j = 3; struct { int b; void (*c)(struct aa); } q = {3,main1},r; j = 3; bbb = main0(); j = main0().a[55]; printf("%d==3\n",q.b); r = q; printf("%d==3\n",r.b); (*r.c)(aaa); printf("main aaa.a[55] %d\n",aaa.a[55]); bbb.a[0]=44; aaa = bbb; aaa.a[99]=55; /* core dump? */ (*r.c)(aaa); printf("main aaa.a[55] %d\n",aaa.a[55]); p = av[0]; if (!p) return; i = p[1]; p = p+i; printf("%d %s\n",i,p-i); } void tmp() { }