Xref: utzoo comp.arch:8298 comp.lang.c:16331 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!sharkey!atanasoff!deimos!cveg!hcx!jms From: jms@hcx.uucp (Michael Stanley) Newsgroups: comp.arch,comp.lang.c Subject: Re: Fun C typos (was *p++ = *q++) Summary: ff Message-ID: <1835@cveg.uucp> Date: 17 Feb 89 18:53:35 GMT References: <777@atanasoff.cs.iastate.edu> <223@nbires.nbi.com> Sender: netnews@cveg.uucp Followup-To: comp.arch Distribution: usa Organization: College of Engineering, University of Arkansas, Fayetteville Lines: 40 In article , ejp@faron.icd.abnet.COM (Ed Prochak) writes: > In article <15908@mimsy.UUCP> chris@mimsy.UUCP (Chris Torek) writes: > > In article <1184@houxs.ATT.COM> beyer@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@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