== Quote from Denis Koroskin (2kor...@gmail.com)'s article > On Fri, 08 Oct 2010 18:49:36 +0400, %u <e...@ee.com> wrote: > > /The following binary expressions are evaluated in an > > implementation-defined > > order: > > AssignExpression/../AddExpression/ > > > > /It is an error to depend on order of evaluation when it is not > > specified./ > > > > That makes this an error!? > > > > y = x + 1; > > > > Am I being paranoid or should I be adding more brackets? > Assignment has higher precedence that addition so your code has no errors. You probably mean that the other way around ;)
But you are right, I am confusing precedence and associativity. The expressions page reads like there are only two levels of precedence, but it only says anyting about the associativity. A quick search on precedence shows that the C precedence rules apply. > However, the following one does: > int x = 1; > int y = (x = 2) + x; > because "x" and "x = 2" has same precedence and thus may be evaluated in > any order. > Stay away from such code and you should be fine. I never assign within assignments :)