Walter Bright wrote:
Jérôme M. Berger wrote:
I've always felt they were useless and confusing. What's the advantage of "y = (foo(), x + 3);" over "foo(); y = x+3;"?

When you only see the x+3 because you're recursively walking the tree generating code.

It's handy for things like rewriting ++e so it can be used more than once but is only evaluated once:

   (tmp = ++e, tmp)

    Uh? How is that different from "++e"

You can then use tmp more than once with only one increment of e.

I guess I'll need a complete concrete example before I understand. I mean:

tmp = ++e;
veryComplexExpressionThatUsesTmpSeveralTimesWithoutTouchingE;

Or even:

++e;
veryComplexExpressionThatUsesESeveralTimesWithoutIncrementingIt;

Are both clearer, less error-prone and should produce equivalent code to the coma expression.

                Jerome
--
mailto:[email protected]
http://jeberger.free.fr
Jabber: [email protected]

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to