🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c
Article #996

Re: Re: Order of Evaluation (plus ?'s)

#996
From: Walter Murray
Date: Wed, 22 Nov 1989 17:38
47 lines
2283 bytes
Wm E Davidsen Jr writes:

> In article <12570034@hpclwjm.HP.COM> walter@hpclwjm.HP.COM (Walter Murray) writes:

>| There are times when the parentheses aren't even needed.  ANSI C guarantees
>| that
>|    p = q + r + s;
>| will behave exactly the same as
>|    p = (q + r) + s;

>  Could you quote sections on that? I don't seem to find the part which
>says that expressions are evaluated left to right.

I thought I might get challenged on that!  First, let me emphasize
what I'm NOT saying.  Consider a more general example:

   double sum, x(), y(), z();
   sum = x() + y() + z();

Functions x, y, and z may have side effects.  I am not saying anything
about the order in which those side effects will occur.  The
actual call to z may occur before the calls to x and y.  What I am
saying is that, of the two additions in the expression, the addition
of x() and y() will be performed first, then z() will be added to
that result.

The implementation is free to rearrange things only if it can't make a
difference.  For floating-point arithmetic, of course, it CAN make a
difference.

This is covered in an example in 2.1.2.3.  If you have the December 7,
1988, edition of the dpANS, see page 9, line 46, through page 10, line 21.

I realize that examples are not part of the Standard, but they do
attempt to convey what the Committee members intended for the Standard
to say.  To prove my original assertion from the Standard itself, the
best I can do is to cite the syntax for additive operators (3.3.6),
which defines '+' as a left-associative operator, and then cite
the third paragraph of 3.3, which implies that the syntax can
specify order of evaluation.

Maybe someone else can present a stronger argument in support of
the example I am referring to.

Walter Murray
walter@hpda.HP.COM
---
Technical Details
Message-ID: <12570035@hpclwjm.HP.COM>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!dogie.macc.wisc.edu!decwrl!hplabs!hp-ses!hpcuhb!hpcllla!hpclisp!hpclwjm!walter
References: <1989Nov18.232326.23711@utzoo.uucp>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!dogie.macc.wisc.edu!decwrl!hplabs!hp-ses!hpcuhb!hpcllla!hpclisp!hpclwjm!walter
From: walter@hpclwjm.HP.COM (Walter Murray)
Newsgroups: comp.std.c
Subject: Re: Re: Order of Evaluation (plus ?'s)
Message-ID: <12570035@hpclwjm.HP.COM>
Date: 22 Nov 89 17:38:17 GMT
References: <1989Nov18.232326.23711@utzoo.uucp>
Organization: Hewlett-Packard Calif. Language Lab
Lines: 47