Per C standard, everything except 0 must be evaluated as a true value. Why all over CSL, drivers and etc. conditions
if (TRUE == xxx)
{
}
are used? One might pass to a function something like (mask & flag) and it will be treated as false, despite being non-zero value.