What is the _Bool keyword in C?

The keyword _Bool in C is used to represent the built-in boolean data type. _Bool is an unsigned integer type in which 0 represents false and 1 represents true.

Declaration

In C, _Bool can be declared as:

_Bool foo = 0;

OR:

_Bool foo = 1;

Examples

Example 1

Consider the code snippet below, which shows the use of _Bool:

#include<stdio.h>
int main() {
_Bool foo = 1;
if(foo){// same as if(foo == 1)
printf("Boolean is true");
}else if(!foo){// same as if(foo == 0)
printf("Boolean is false");
}
return 0;
}

Example 2

If _Bool is declared with a value greater than 1, it stores the number as 1:

#include<stdio.h>
int main() {
_Bool foo = 8;
if(foo == 1){
printf("Boolean is true \n");
printf("Boolean value: %d \n", foo);
}else if(foo == 0){
printf("Boolean is false \n");
}
return 0;
}

Example 3

When assigned a pointer, _Bool stores 1 if the pointer points to something and stores 0 if the pointer is NULL:

#include<stdio.h>
int main() {
int a = 10;
int * ptr = NULL;
_Bool foo1 = ptr;
if(foo1 == 1){
printf("Boolean is true \n");
}else if(foo1 == 0){
printf("Boolean is false \n");
}
ptr = &a;
_Bool foo2 = ptr;
if(foo2 == 1){
printf("Boolean is true \n");
}else if(foo2 == 0){
printf("Boolean is false \n");
}
return 0;
}

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved