参考: C语言的布尔类型(_Bool)
1, _Bool 类型
#include <stdio.h>
/*
_Bool
大小: 占一位, 0 和 1
非零: 1, 表示为真
零 : 0, 表示为假
*/
int main(void)
{
_Bool b;
printf("sizeof(_Bool) = %d\n", sizeof(_Bool));
int i;
for (i = -10; i < 10; ++i)
{
b = i;
printf("i = %3d, b = %d \n", i, b);
}
return 0;
}
/*
sizeof(_Bool) = 1
i = -10, b = 1
i = -9, b = 1
i = -8, b = 1
i = -7, b = 1
i = -6, b = 1
i = -5, b = 1
i = -4, b = 1
i = -3, b = 1
i = -2, b = 1
i = -1, b = 1
i = 0, b = 0
i = 1, b = 1
i = 2, b = 1
i = 3, b = 1
i = 4, b = 1
i = 5, b = 1
i = 6, b = 1
i = 7, b = 1
i = 8, b = 1
i = 9, b = 1
*/
2, bool类型, ( #include <stdbool.h> )
#include <stdio.h>
#include <stdbool.h>
/*
bool类型本质上还是 _Bool类型
*/
int main(void)
{
bool b1 = true;
bool b2 = false;
printf("sizeof(bool) = %d \n", sizeof(bool)); // 1
printf("b1 = %d \n", b1); // 1
printf("b2 = %d \n", b2); // 0
return 0;
}