Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!rphroy!caen!uwm.edu!linac!unixhub!ditka!comeau From: comeau@ditka.Chicago.COM (Greg Comeau) Newsgroups: comp.sys.amiga.programmer Subject: Re: Compiler code (was a flame fest) Message-ID: <37302@ditka.Chicago.COM> Date: 23 Apr 91 05:09:47 GMT References: <1991Apr17.180342.25312@engin.umich.edu> <1991Apr18.122054.13695@athena.mit.edu> <1991Apr18.212939.3461@kessner.denver.co.us> Sender: comeau@ditka.Chicago.COM (Greg Comeau) Reply-To: comeau@csanta.attmail.com (Greg Comeau) Organization: Comeau Computing Lines: 21 In article <1991Apr18.212939.3461@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: >In article <1991Apr18.122054.13695@athena.mit.edu> amgreene@athena.mit.edu (Andrew Marc Greene) writes: >> int n = 4; (++n) * (--n); >Humph. The answer is 16. >The pre-operators (--n ++n) mean "evaluate these expressions before anything >else". So the above statement is the same as: > n=n+1; n=n-1; ?? = n * n; >Try it. Not quite. First, C has some liberties in it's evaluation of some expressions. Second, exactly when side-effects take place in a given expression is undefined. Bottom line: 16 *might* work for your compiler, but needn't. - Greg -- Comeau Computing, 91-34 120th Street, Richmond Hill, NY, 11418 Producers of Comeau C++ Here:attmail.com!csanta!comeau / BIX:comeau / CIS:72331,3421 Voice:718-945-0009 / Fax:718-441-2310