Boolean Types

The compiler supports _Bool, a type used for holding true and false values.

The values held by variables of this type are not integers and behave differently in expressions compared to similar expressions involving integers of type __bit (See Bit Data Types And Variables). Values converted to a _Bool type result in 0 (false) if the value is 0; otherwise, they result in 1 (true). Values converted to an integer bit type are truncated to the least significant bit.

The <stdbool.h> header defines true and false macros that can be used with _Bool types and the bool macro, which expands to the _Bool type. For example:

#include <stdbool.h>
_Bool motorOn;
motorOn = false;

If you are compiling with the C90 standard, _Bool is not available, but there is a bool type available if you include <stdbool.h>, but which is merely a typedef for unsigned char.