On Sun, Oct 24, 2004 at 02:31:54PM -0500, Adam Majer wrote: > Anyway, I do remember that the precedence occurs as in order (for above > example) > > unary - > + - > > I would expect X() and Y() to be undetermined until actually evaluated. > That is, > > -X()+Y() > -x+Y(), where x=evaluated X() > x'+Y(), where x' = -x > x'+y, where y=evaluated Y() > > According to upstream (and ISO C), -X()+Y() can be evaluated as, > > -X()+Y() > -X()+y > -x+y > x'+y > > This essentially means that precedence is not followed if Y depends on X > or vice-versa. > > Blah.... Now I have to go and rewrite some code...
This isn't a question of precedence, which only affects the way an expression is interpreted. It's strictly a problem of evaluation order. Precedence determines how the expression is parsed, i.e. (-X()) + Y() vs (-X() + Y) () an so forth. -- Daniel Jacobowitz