在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("这将打印!"); } if (!y) /* Equivalent to if (y == 0) */ { puts("这也将打印!"); } }
_Bool是整数类型,但对于从其他类型进行转换有特殊的规则。结果类似于在if表达式中使用其他类型。在下面的
_Bool z = X;
如果X具有算术类型(是任何数字),则z成为0if X == 0。否则z成为1。
如果X具有指针类型,则z成为0ifX为空指针,1否则为。
要使用更好的拼写bool,false并且true您需要使用<stdbool.h>。