Bob Plantz wrote:
Another rule I gave them is "multiplication and division have higher precedence than addition and subtraction; use parentheses in all other cases."
++ I used to always get tripped up in embedded code because "==" has precedence over "&" which I do not believe is intuitive to most people. unsigned int value; #define BITSET 0x1234 // Wrong: always true if value is odd since BITSET == BITSET is evaluated first // which reduces to "(value & 1)" if (value & BITSET == BITSET) {} // Bits are set // Right: if ((value & BITSET) == BITSET) {} // Bits are set