As far as I can see there are 3 ways to use booleans in c
#defin
Any int other than zero is true; false is zero. That way code like this continues to work as expected:
int done = 0; // `int` could be `bool` just as well
while (!done)
{
// ...
done = OS_SUCCESS_CODE == some_system_call ();
}
IMO, bool is an overrated type, perhaps a carry over from other languages. int works just fine as a boolean type.