没有布尔类型的原因:在C里任何类型都可以当作bool来用,只要该值不为0就表示true,为0则表示false。在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。为了方便,使用布尔类型可以加入头文件stdbool.h,该文件定义了bool=_Bool,true=1,false=0。
在c里任何类型都可以当作bool来用,只要该值不为0就表示true,为0则表示false。ANSI C99标准规定C语言中有布尔类型(_Bool)。为了方便,使用布尔类型可以加入头文件stdbool.h,该文件定义了bool=_Bool,true=1,false=0。使用布尔类型必须保证所使用的编译器支持C99标准。
在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。
在C语言中用0代替假值,非0代表真值.上面这种定义法只是定义常量,为了方便那些习惯了使用true,false的程序员
新版本总会改进一些不好的地方,所以在最新的C语言标准(C99)解决了布尔类型的问题。C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag.
_Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1.
C99还提供了一个头文件 定义了bool代表_Bool,true代表1,false代表0.只要导入 stdbool.h ,就能非常方便的操作布尔类型了。
延伸阅读:
什么是布尔类型?
布尔型(Boolean)是编程语言 pascal 、VB、 C++ 、Java等的一种类型变量类型。 布尔型的值只有两个:false(假)和true(真)。而在Java中,0不表示假 , 1也不表示真 , 只有布尔类型可以表示真假。
布尔类型对象可以被赋予文字值true或者false,所对应的关系就是真与假的概念。
布尔类型只有两个值,false 和 true。
通常用来判断条件是否成立。
C语言语法规定,如果变量值为 0 就是 false,否则为 true,布尔变量只有这两个值。
文章标题:为什么C没有布尔类型,发布者:小编,转载请注明出处:https://worktile.com/kb/p/41154