In classic C there are the operators == ! && || ^^ and the result is always true or false which is normally mapped to the integer values 0 and 1.
So there are strictly boolean operators and this is why classic C does not need a boolean type.
Boolean type in C is only for clarity and portability.
If =, not, and, or, exor, where strictly boolean operators, then implicit type conversion of integer to boolean would be thinkable in theory.
But, so far I know, it was Borland, who made these operators polymorphic so that they can do also arithmetic conversions.
So, if a is 1234 then the construct
IF NOT a THEN ..... would be undefined if a could automatically propagate to boolean.
So new compiler directives would be needed to implement this idea.
