One of my pet-peeves is code written like this,
if (0 != value) { ... }
This reads backwards to me. I hear echoes of
Frank Oz in my head, "if zero
the value is not". As cute as this dialect is coming from a pointy-eared muppet,
it still takes a bit to translate back into the more common English phrasing,
"if the value is not zero". It seems programmers who insist on writing in this style
have forgotten that their source should be readable as well as executable. Don't
force your readers to have to do grammar gymnastics as well as having to
decipher your algorithmic gynmastics.
Once upon a time, this was considered good style in order to avoid accidentally
writing something like,
if (value = 0) { ... }
In C#, this is illegal. In most (all?) modern C and C++ compilers, this will
generate a warning. (You do compile with warnings reported as errors right?)
There ceases to be a good reason to write test expressions backwards. Let's let
this style rest in peace.
Even if you think the above form has some redeeming value, let's all agree
that any programmer that voluntarily writes something like,
if (false == value) { ... }
should have an electric shock sent directly through their keyboard.