Fun C typos (was *p++ = *q++)
Michael Stanley
jms at hcx.uucp
Sat Feb 18 04:53:35 AEST 1989
In article <EJP.89Feb16173101 at faron.icd.abnet.COM>, ejp at faron.icd.abnet.COM (Ed Prochak) writes:
> In article <15908 at mimsy.UUCP> chris at mimsy.UUCP (Chris Torek) writes:
> > In article <1184 at houxs.ATT.COM> beyer at houxs.ATT.COM (J.BEYER) writes:
> > >for(i == 0; ...
> > >
> > >Now the funny thing was that i was seldom equal to zero on entry to this
> > >loop, so it started at FALSE or 0 almost always. But once in a while
> > >i did == 0, so the loop would start at TRUE sometimes. TRUE is not 0 in
> > >our implimentation. Very vexing to find.
> >
> > This is not the proper group for this, but I have to say *something*.
> > That is not how for loops work in C, and the true-value of any comparison
> > operator in *any* correct C compiler is 1 (not -1, not 17, not 42, 1).
> > The latter in particular in a common misconception, probably left over
> > from FORTRAN (and BASIC) systems that used -1 as .TRUE..
> > --
> > In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
> > Domain: chris at mimsy.umd.edu Path: uunet!mimsy!chris
> >
I never saw the original letter that included the code segment:
for(i == 0; ...
But... The argument above just doesn't make sense. The piece of code
between the left paren and the first semicolon of the for statement
EVALUATES to a boolean true or false, BUT NO VARIABLE ASSIGNMENT IS MADE!
So I don't see how the fact that i == 0 evaluates to true or false makes
any difference. Now the fact that i was not properly initialized in the
for loop...
Sorry about including an extra unnecessary level of message indirection
above, but I couldn't locate a copy of the original message and so just
copyied a piece of a response message instead.
Michael Stanley
More information about the Comp.lang.c
mailing list