An equality expression takes two operands, the second of which is often a constant or an rvalue:
if (x==4) // 4 is an rvalue // .. do something if (y!=MAX_COUNT) // MAX_COUNT is a constant // .. do something
Some programmers prefer to reverse the operands’ order:
if (4==X) // .. do something if (MAX_COUNT!=y) // .. do something
Because the equality and inequality operators are commutative, reversing the order of their operands doesn’t change the result. However, the benefit is that a reversed order saves you from using = instead of == by mistake. If you put = instead of == in a reversed order expression, for example:
if (4=X) // mistakenly used = instead of == // .. do something
Your compiler will catch the error and complain about an attempt to assign to an rvalue.
Personally, I don’t like the reverse order trick because it makes the code somewhat distorted: the programmer’s intention is to check the value of x, not the value of the constant 4. Still, if you find yourself mistaking = for ==, you may adopt this coding style. Note that a good compiler should warn about assignments inside conditions, which makes this techniques less needed than it might seem at first.