Xref: utzoo comp.arch:8292 comp.lang.c:16308 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cwjcc!abvax!ejp From: ejp@faron.icd.abnet.COM (Ed Prochak) Newsgroups: comp.arch,comp.lang.c Subject: Re: Fun C typos (was *p++ = *q++) Message-ID: Date: 16 Feb 89 22:31:01 GMT References: <777@atanasoff.cs.iastate.edu> <223@nbires.nbi.com> <1184@houxs.ATT.COM> <15908@mimsy.UUCP> Sender: news@abvax.UUCP Distribution: usa Organization: Allen-Bradley Lines: 40 In-reply-to: chris@mimsy.UUCP's message of 11 Feb 89 04:13:18 GMT 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 > Chris, He said nothing about the value that resulted from the comparison. He said, "TRUE is not 0". and that is correct. Kernighan and Ritchie state exactly that, on page 38 to be specific. A TRUE value in C does not have to be 1 (one) for it to be a "correct C compiler". In C FALSE = 0 TRUE = NOT FALSE Note that I did not use the unary negation operator which is guaranteed to convert a 0 (FALSE) to a 1 (TRUE), but it accepts as TRUE any non-zero value and converts it to 0. If you don't want problems, don't assume that TRUE is always 1. Just a friendly word to the wise. Ed PS I don't read comp.lang.c so send mail if the followup is interesting. -- Edward J. Prochak (216)646-4663 I think. {cwjcc,pyramid,decvax,uunet}!abvax!ejp I think I am. Allen-Bradley Industrial Computer Div. Therefore, I AM! Highland Heights,OH 44143 I think? --- Moody Blues