Не помню, писал об этом или нет, но написать ещё раз -- лишним не будет.

Почему я повесил на работе рядом со столом таблицу приоритетов операций в Си/Си++? Потому что не все они очевидны -- и я на этом накалывался.

Главный прикол для меня -- это битовые операции. Например, проверим, чему равен последний бит числа:

if(a&0x1==1)
//если последний бит числа установлен, то сделать что-либо

Как бы не так. Битовые операции имеют приоритет НИЖЕ, чем сравнение. Видимо, считается, что они являются аналогами обычных логических операций, таких как &&, однако это не так. Битовые операции ближе к арифметическим. А арифметические выше, чем сравнения. Противоречие.

Как же выполняется это условие?

if(a&(1==1))
//...

Вот так. По чудесному стечению обстоятельств эта конструкция будет работать. Но если бы мы, к примеру, проверяли предпоследний бит, нас бы ждал сюрприз.

Ну что, Minoru, помог бы мне твой -Wall?