3 ms·
bool a = someInt & 0x02; is perfectly fine in C99. 0 converts to false, non-zero converts to 1 when assigning to a _Bool. What's not fine is people creating t
by noselasd 13y ago
bool a = someInt & 0x02;
is perfectly fine in C99. 0 converts to false, non-zero converts to 1 when assigning to a _Bool.
What's not fine is people creating their own compatibility booleans where they define true as 1, as that would indeed break(rather odd..) code such as
bool a = someInt & 0x02;
if (a == true)
If the bool above is not the C99 _Bool, but just a typedef to another integer type, you end up with if(0x02 == 1) evaluating to false.