From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Unary operator after binary operator: legal or not? => Compiler Error
Date: Wed, 01 Aug 2007 00:16:41 -0700
Date: 2007-08-01T00:16:41-07:00 [thread overview]
Message-ID: <1185952601.476211.72590@r34g2000hsd.googlegroups.com> (raw)
In-Reply-To: <1185909474.208950.99070@d30g2000prg.googlegroups.com>
On 31 Lip, 21:17, Adam Beneschan <a...@irvine.com> wrote:
> What I can't figure out is, my C compiler accepts "c = a+++b"
Yes.
> but it
> doesn't
> seem to accept "c = a+++++b"
Right.
> which should clearly be equivalent to
> c = (a++) + (++b).
Why do you think so? On what basis?
The C (and C++) parser is greedy, which means that it tries to eat as
much as it can to get the valid token. The first two pluses in 'a++++
+b' give a single token '++'. The next two pluses give another *valid*
token, which is again '++'. And so on. The only problem is that two
such tokens one after another, while still being *valid* tokens, do
not form a valid expression (cannot post-increment the r-value that
results from the first post-increment).
Note that you can/should write:
c = a++ + ++b;
which does what you expect (except that post-increment has no benefits
over pre-increment here).
Hint: keep the formatting of your code readable. Your compiler just
refuses the code that would be hard to read by a human being - why do
you consider it to be a bug in the language? :-)
--
Maciej Sobczak
http://www.msobczak.com/
next prev parent reply other threads:[~2007-08-01 7:16 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-30 22:52 Unary operator after binary operator: legal or not? Jeffrey R. Carter
2007-07-30 23:39 ` Markus E.L.
2007-07-31 0:22 ` Adam Beneschan
2007-07-31 21:52 ` Jeffrey R. Carter
2007-07-31 8:01 ` anon
2007-07-31 8:16 ` Unary operator after binary operator: legal or not? => Compiler Error anon
2007-07-31 8:38 ` AW: Unary operator after binary operator: legal or not? => CompilerError Grein, Christoph (Fa. ESG)
2007-07-31 15:05 ` Unary operator after binary operator: legal or not? => Compiler Error Robert A Duff
2007-07-31 15:39 ` Dmitry A. Kazakov
2007-07-31 15:53 ` Robert A Duff
2007-07-31 17:02 ` Georg Bauhaus
2007-07-31 19:17 ` Adam Beneschan
2007-08-01 7:16 ` Maciej Sobczak [this message]
2007-08-01 15:23 ` Adam Beneschan
2007-07-31 20:59 ` Robert A Duff
2007-08-01 7:24 ` Georg Bauhaus
2007-08-01 8:02 ` Dmitry A. Kazakov
2007-08-01 8:17 ` AW: Unary operator after binary operator: legal or not? => CompilerError Grein, Christoph (Fa. ESG)
2007-08-01 10:10 ` Ian Clifton
2007-08-01 9:34 ` Unary operator after binary operator: legal or not? => Compiler Error Georg Bauhaus
2007-08-01 21:51 ` Jeffrey R. Carter
2007-07-31 17:52 ` Dmitry A. Kazakov
2007-08-02 20:44 ` Charles Lindsey
2007-08-03 7:48 ` Stuart
2007-08-03 7:51 ` Dmitry A. Kazakov
2007-07-31 23:22 ` anon
2007-08-01 0:13 ` Adam Beneschan
2007-08-01 6:20 ` Unary operator after binary operator: legal or not? => Illegal anon
2007-08-01 5:34 ` AW: Unary operator after binary operator: legal or not? => CompilerError Grein, Christoph (Fa. ESG)
2007-08-01 6:46 ` To := Grein, Christoph (Fa. ESG) anon
2007-08-01 7:11 ` AW: " Grein, Christoph (Fa. ESG)
2007-08-02 6:52 ` anon
2007-08-02 8:56 ` AW: " Grein, Christoph (Fa. ESG)
2007-08-02 22:29 ` Markus E.L. 2
2007-08-02 23:02 ` tmoran
2007-08-02 23:11 ` Ed Falis
2007-08-02 23:34 ` Markus E.L. 2
2007-08-03 4:42 ` AW: " Grein, Christoph (Fa. ESG)
2007-08-02 22:28 ` Markus E.L. 2
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox