Well, it was confusing but if you look inside ISO/IEC 9899 you can find chapter like "Expressions - topic 4". Here it is:
<BR>...<BR>4. Except where noted, the order of evaluation of operands of individual operators and subexpressions of individual<BR>expressions, and the order in which side effects take place, is unspecified. Between the previous and<BR>next sequence point a scalar object shall have its stored value modified at most once by the evaluation of an<BR>expression. Furthermore, the prior value shall be accessed only to determine the value to be stored. The<BR>requirements of this paragraph shall be met for each allowable ordering of the subexpressions of a full<BR>expression; otherwise the behavior is undefined. [Example:<BR>i = v[i++]; // the behavior is undefined<BR>i = 7, i++, i++; // ‘i’ becomes 9<BR>i = ++i + 1; // the behavior is undefined<BR>i = i + 1; // the value of ’i’ is incremented<BR>—end example]<BR>...
<BR>I think it is clear enough that your expression is much more complicated version of i = ++i + 1, so the behavior will be what your compiler can produce <IMG SRC="smile.gif" border="0">
Hope it helps.<BR>acid
[ October 02, 2001: Message edited by: acid ]
|