Using the Intrinsic built-in Type Bool
suggest changeAdded in the C standard version C99, _Bool
is also a native C data type. It is capable of holding the values 0
(for false) and 1
(for true).
#include <stdio.h>
int main(void) {
_Bool x = 1;
_Bool y = 0;
if(x) /* Equivalent to if (x == 1) */
{
puts("This will print!");
}
if (!y) /* Equivalent to if (y == 0) */
{
puts("This will also print!");
}
}
_Bool
is an integer type but has special rules for conversions from other types. The result is analogous to the usage of other types in if
expressions. In the following
_Bool z = X;
- If
X
has an arithmetic type (is any kind of number),z
becomes0
ifX == 0
. Otherwisez
becomes1
. - If
X
has a pointer type,z
becomes0
ifX
is a null pointer and1
otherwise.
To use nicer spellings bool
, false
and true
you need to use <stdbool.h>
.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents