Walter Bright wrote:
Nick Sabalausky wrote:
"Walter Bright" <[email protected]> wrote in message
It's handy when you want to prefix one expression to another, as in:

   (foo(), x + 3)

I guess I'm not familiar with that syntax. What does that do and for what purpose?

They're called Comma Expressions, and the left operand is evaluated first, its result discarded, then the right operand is evaluated and forms the type and result of the Comma Expression.

I've always felt they were useless and confusing. What's the advantage of "y = (foo(), x + 3);" over "foo(); y = x+3;"?

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"

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to