precedence lossage
Technology Dictionary -> precedence lossageSearch:
precedence lossage
/pre's*-dens los'*j/ A C coding error in an expression due
to unintended grouping of arithmetic or logical operators.
Used especially of certain common coding errors in C due to
the nonintuitively low precedence levels of "&", "|", "^",
"<<" and ">>". For example, the following C expression,
intended to test the least significant bit of x,
x & 1 == 0
is parsed as
x & (1 == 0)
which the compiler would probably evaluate at compile-time to
(x & 0)
and then to 0.
Precedence lossage can always be avoided by suitable use of
parentheses. For this reason, some C programmers
deliberately ignore the language's precedence hierarchy and
parenthesise defensively. Lisp fans enjoy pointing out that
this can't happen in *their* favourite language, which eschews
precedence entirely, requiring one to use explicit parentheses
everywhere.
Other sources of bugs include aliasing bug, memory leak,
memory smash, smash the stack, fandango on core,
overrun screw.
[Jargon File]
(1994-12-16)