pe...@taronga.com writes: >> It is just operator precedence, which already makes multiplication >> non-commutative if you ignore it. C also makes "f (b) * c" different >> than "f c * (b)", although its semantics are less surprising (unless, >> perhaps, c is parenthesized as well). Is that hateful in C? > > Um, "f (b) * c" in C becomes "c * f (b)" if you reverse the order of the > arguments to the multiplication operator. "f c * (b)" isn't meaningful.
That is precisely why its semantics are less surprising. Unless c is parenthesized, the surprise -- if any -- occurs at parse time rather than run time. Michael