什么是_Bool?
首先给出答案_Bool是一种类型关键字与charint等同类。那可能就会有很多刚开始学c语言的小伙伴有疑问了“诶我明明记得书上只有char,int,float,double这四种基础关键字呀没有_Bool啊”确实我们一般在入门教材中很难找到_Bool的身影因为C语言随着时代的进步也是在不断变化的在教材当中我们多以C89/C90为C语言标准而这个时候_Bool还没存在。直到C99标准才加入_Bool做关键字。接下来我们将具体介绍一下_Bool。_Bool即布尔型。作为类型关键字它也可以定义变量但是他的定义比较有限只能定义变量是true真还是false假而true1false0。这里又需要和if语句区分一下了在之前的文章中我们也提到过在if语句中非零即是真但是在_Bool中真只是1。那么这个时候有的小伙伴就会兴高采烈的去尝试但是结果发现语法报错了这是因为虽然在C23的定义中早就添加了true和false作为关键字但是像VS这些软件的C语言标准还是停留在比较旧的版本。哪怕是最新的C语言工作草案依然没将true和false作为关键字处理。注VS中C语言标准更改如下图。而此时我们如果想使用true和false就需要添加头文件#include stdbool.h。以上我们便完成了对_Bool的基本介绍肯定会有很多朋友在第一眼看到这个类型关键字的时候会觉得他很奇怪为什么要在开始加上_并且第一个字母还要大写这是因为在C语言刚开始大面积使用的时候并没有bool因此在以C89/C90为C语言为标准时大量代码已经把bool拿来做宏、变量名若果将bool直接变成关键字将导致许多老项目编译直接炸掉。因此在C99中才会采用_Bool当然想用bool肯定也没问题只要加头文件#include stdbool.h即可。