Re: C question for you old guys ;-)
Re: C question for you old guys ;-)
- Subject: Re: C question for you old guys ;-)
- From: Jay Vaughan <email@hidden>
- Date: Mon, 9 Jun 2003 23:20:02 +0200
I can't tell you how many times I have typed '=' when it should
have been '=='. Likewise '&' instead of '&&'.
I think those macros are a very good idea.
I notice that the reaction to them here is about the same as when I
first mentioned them on comp.lang.c in 1985 or so. ;-)
Errcckkk... and the same arguments used back then to defeat this
horrible 'habit' are just as applicable. I remember threads about
things like this in the late 80's, when it was fashionable to poke
holes in C's shortfalls without understanding the ramifications that
would present themselves further down the line...
The road to macrofication of '==' leads to terrible, terrible obfuscation ...
Using pre-processor macro's to change language semantics is a *BAD*
use of macro's, people!
One thing will lead to another and sooner or later you will find
yourself writing code like this, I promise you:
#define P(X)j=write(1,X,1)
#define C 39
int M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N,
*d=N,c,e,f,g,i,j,k,s;main(){for(M[i=C*R-1]=24;f|d>=b;){c=M[g=i];i=e;for(s=f=0;
s<4;s++)if((k=m[s]+g)>=0&&k<C*R&&l[s]!=k%C&&(!M[k]||!j&&c>=16!=M[k]>=16))a[f++
]=s;if(f){f=M[e=m[s=a[rand()/(1+2147483647/f)]]+g];j=j<f?f:j;f+=c&-16*!j;M[g]=
c|1<<s;M[*d++=e]=f|1<<(s+2)%4;}else e=d>b++?b[-1]:e;}P(" ");for(s=C;--s;P("_")
)P(" ");for(;P("\n"),R--;P("|"))for(e=C;e--;P("_ "+(*u++/8)%2))P("| "+(*u/4)%2
);}
Come on now, you don't want to have to debug stuff like this ... when
that happens, you will only be getting what you deserve ... /wink/
--
;
Jay Vaughan
r&d>>music:technology:synthesizers - www.access-music.de/
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.