Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #162662
| From | Bart <bc@freeuk.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: C precedence - relative comparisons before equality operators |
| Date | 2021-09-08 00:20 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <sh8s3d$tgp$1@dont-email.me> (permalink) |
| References | <sh2vvh$oir$1@dont-email.me> <sh38om$1nc6m$1@news.xmission.com> <sh7ssq$nl$1@dont-email.me> |
On 07/09/2021 15:27, John Bode wrote: > On 9/5/21 3:19 PM, Kenny McCormack wrote: >> In article <sh2vvh$oir$1@dont-email.me>, >> James Harris <james.harris.1@gmail.com> wrote: >>> According to >>> >>> https://en.cppreference.com/w/c/language/operator_precedence >>> >>> and other references C applies relative comparisons (<, <=, >=, >) >>> before equality comparisons (==, !=) rather than giving them all the >>> same priority. >>> >>> Anyone know why the precedences were designed that way? >>> >>> Are there certain idioms in which that arrangement is useful? >> >> I think it makes sense. If I see: >> >> if (a < b == c < d) >> >> I would expect it to mean: >> >> if ((a < b) == (c < d)) >> >> That's got to be more useful than: >> >> if ((a < (b == c)) < d) >> > > That's exactly the example given in footnote 108 of N1570: > > 108) Because of the precedences, a<b == c<d is 1 whenever a<b and c<d > have the same truth-value > > It's the same rationale as expecting "a + b == c + d" to be parsed as > "(a + b) == (c + d)". You want to see if two relational expressions > are equivalent, and the way to enable that without having to use > explicit parentheses everywhere is to make == and != lower precedence > than <, >, <=, and >=. But has anyone ever seen that in real code? And if they have, why wouldn't they also, at some point, have seen: (a == b) == (c == d) Without parentheses, that becomes ((a==b)==c)==d). It seems like they desperately wanted to find any excuse for justifying an extra, gratuitous precedence level for everyone to remember, when dropping one level would probably have had a greater net benefit.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
C precedence - relative comparisons before equality operators James Harris <james.harris.1@gmail.com> - 2021-09-05 18:49 +0100
Re: C precedence - relative comparisons before equality operators Siri Cruise <chine.bleu@yahoo.com> - 2021-09-05 13:11 -0700
Re: C precedence - relative comparisons before equality operators Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-09-05 21:12 +0100
Re: C precedence - relative comparisons before equality operators David Brown <david.brown@hesbynett.no> - 2021-09-06 09:09 +0200
Re: C precedence - relative comparisons before equality operators gazelle@shell.xmission.com (Kenny McCormack) - 2021-09-05 20:19 +0000
Re: C precedence - relative comparisons before equality operators Richard Damon <Richard@Damon-Family.org> - 2021-09-05 17:52 -0400
Re: C precedence - relative comparisons before equality operators Bart <bc@freeuk.com> - 2021-09-06 00:09 +0100
Re: C precedence - relative comparisons before equality operators David Brown <david.brown@hesbynett.no> - 2021-09-06 09:15 +0200
Re: C precedence - relative comparisons before equality operators Bart <bc@freeuk.com> - 2021-09-06 11:10 +0100
Re: C precedence - relative comparisons before equality operators David Brown <david.brown@hesbynett.no> - 2021-09-06 13:01 +0200
Re: C precedence - relative comparisons before equality operators Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2021-09-06 04:20 -0700
Re: C precedence - relative comparisons before equality operators John Bode <jfbode1029@gmail.com> - 2021-09-07 09:27 -0500
Re: C precedence - relative comparisons before equality operators Bart <bc@freeuk.com> - 2021-09-08 00:20 +0100
Re: C precedence - relative comparisons before equality operators John Bode <jfbode1029@gmail.com> - 2021-09-08 14:18 -0500
Re: C precedence - relative comparisons before equality operators Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-09-06 02:01 +0100
Re: C precedence - relative comparisons before equality operators James Harris <james.harris.1@gmail.com> - 2021-09-06 09:39 +0100
Re: C precedence - relative comparisons before equality operators Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-09-06 10:46 +0100
Re: C precedence - relative comparisons before equality operators Richard Damon <Richard@Damon-Family.org> - 2021-09-06 10:09 -0400
Re: C precedence - relative comparisons before equality operators Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-09-06 16:05 +0100
Re: C precedence - relative comparisons before equality operators James Harris <james.harris.1@gmail.com> - 2021-09-06 09:27 +0100
Re: C precedence - relative comparisons before equality operators James Harris <james.harris.1@gmail.com> - 2021-09-06 12:18 +0100
Re: C precedence - relative comparisons before equality operators David Brown <david.brown@hesbynett.no> - 2021-09-06 13:44 +0200
Re: C precedence - relative comparisons before equality operators James Harris <james.harris.1@gmail.com> - 2021-09-06 13:38 +0100
Re: C precedence - relative comparisons before equality operators David Brown <david.brown@hesbynett.no> - 2021-09-06 18:12 +0200
Re: C precedence - relative comparisons before equality operators tth <tth@none.invalid> - 2021-09-06 18:20 +0200
Re: C precedence - relative comparisons before equality operators David Brown <david.brown@hesbynett.no> - 2021-09-06 23:40 +0200
Re: C precedence - relative comparisons before equality operators Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-06 17:20 -0700
Re: C precedence - relative comparisons before equality operators Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-09-06 13:44 +0100
Re: C precedence - relative comparisons before equality operators Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-06 17:23 -0700
Re: C precedence - relative comparisons before equality operators James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-09-06 23:07 -0400
csiph-web