Esempio

void foo( int a, int b)
{
if( a&b != 0 ) {
//b!=0 evaluated first
}
}

Soluzione
Utilizzare le parentesi per assicurarsi che l'operatore bit-wise venga valutato per primo.

void foo( int a, int b)
{
if( (a&b) != 0 ) {
//(a&b) evaluated first
}
}