Sujet : Re: while(T[l]<p & l<=r)
De : pc+usenet (at) *nospam* asdf.org (Phil Carmody)
Groupes : comp.lang.cDate : 14. Apr 2024, 21:32:23
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <875xwj7kiw.fsf@fatphil.org>
References : 1 2
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Janis Papanagnou <janis_papanagnou+
ng@hotmail.com> writes:
On 27.03.2024 12:35, fir wrote:
tell me, is while(T[l]<p & l<=r) the same as while((T[l]<p)&&(l<=r))
>
1. As long as K&R precedences still hold you don't need the inner
parentheses; '<' and '<=' has higher precedence than '&' and '&&'.
2. In this case where you compare predicate expressions that
evaluate to '0' and '1' on both sides of '&' and '&&' respectively
these expressions are (while not the same) equivalent _here_.
The latter has shortcut semantics, and will only evaluate
r, and l a second time, if the first expression is true.
If r or l are memory mapped I/O, or similar, you might be
changing externally visible behaviour.
Phil
-- We are no longer hunters and nomads. No longer awed and frightened, as we havegained some understanding of the world in which we live. As such, we can castaside childish remnants from the dawn of our civilization.-- NotSanguine on SoylentNews, after Eugen Weber in /The Western Tradition/