This will give a compiler error if comparison expression is mis typed as assignment expression.
For example, if you compile
if (buf = NULL) {}
the compiler says,
warning: suggest parentheses around assignment used as truth value [-Wparentheses]
but if you change it to
if (NULL = buf) {}
the compiler now says,
error: lvalue required as left operand of assignment