Subject: Re: main return...
To: None <>
From: Not for internal consumption <>
List: current-users
Date: 03/27/1996 10:22:03
John Woods sez:
-   Ty Sarna says of "void main()":
-   > Shoot, look at all the quite experienced C programmers who don't know
-   > it's not allowed!
-   Look at all the "quite experienced" C programmers who don't know that
-	   a[i] = i++;
-   is not allowed.

You're kidding, right?  I was sure it wasn't _recommended_, but I
didn't know it was explicitly forbidden.

According to the rules of ordinal evaluation:

	[] binds first, left to right, so we have a[i].
	++ binds next, right to left, so i is now i+1.
	= binds last, right to left, so a[i] has the value i+1.

Of course, when compiled, the ++ gets eval'd *AFTER* the assignment
(StunOS 4.x standard compiler AND gcc do this -- is this right?).

[Followups to that last question to be redirected to,
 let's not start YAS semantics war.]

-   And weep for the state of education.

I don't know a compiler that would reject the code.  Of course, that
speaks loudly for the state of education among compiler writers, I