头文件<stdbool.h>
true是1,0代表false
#include <stdio.h> #include <stdbool.h> #include <stdlib.h> int main(void) { bool boolean=-11212112; printf("boolean:%d\n",boolean); return EXIT_SUCCESS; }
输出结果:
boolean:1
可以看到,gcc编译器对待_Bool类型有自己的转换处理。如果是0赋值给_Bool类型,那么就赋值0。如果是任意其他数据,那么会赋值为1。(只是不知道其他编译器是否如此处理,C2008标准草案没有细说这个部分)
_Bool类型只有0和1这两个值。