I noticed for a while now the following syntax in some of our code:
if( NULL == var){ //... }
or
if( 0 == var){ //... }
and similar things.
Can someone please explain why did the person who wrote this choose this notation instead of the common var == 0 way)?
Is it a matter of style, or does it somehow affect performance?
It’s a mechanism to avoid mistakes like this:
If you write it with the variable name on the right hand side the compiler will be able catch certain mistakes:
Of course this won’t work if variable names appear on both sides of the equal sign and some people find this style unappealing.
Edit:
As Evan mentioned in the comments, any decent compiler will warn you about this if you enable warnings, for example,
gcc -Wallwill give you the following:You should always enable warnings on your compiler, it is the cheapest way to find errors.
Lastly, as Mike B points out, this is a matter of style and doesn’t affect the performance of the program.