使用 Intrinsic(内置)Type Bool
Version >= C99
在 C 标准版本 C99 中添加,_Bool
也是本机 C 数据类型。它能够保持值 0
(对于 false )和 1
(对于 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
是一个整数类型,但对其他类型的转换有特殊规则。结果类似于 if
表达式中其他类型的用法。在下面的
_Bool z = X;
- 如果
X
有一个算术类型(是任何类型的数字),z
如果X == 0
变成0
。否则z
变成了1
。 - 如果
X
具有指针类型,则z
如果X
是空指针则变为0
,否则变为1
。
要使用更好的拼写 bool
,false
和 true
,你需要使用 <stdbool.h>
。