C语言中的布尔类型
一、相关基础知识
首先bool true false为C++中的关键字,C语言中默认不支持这几个字符!
二、具体内容
在C89 (ANSI C)标准中没有定义与布尔类型相关的内容
但在C99标准中新定义了一个新的关键字_Bool ,以及新增了一个头文件 <stdbool.h>规范了布尔类型的操作,方便程序员进行调用!
在<stdbool.h>头文件中定义了如下内容:
#define bool_Bool
#define false0
#define true1
这样在支持C99标准的编译器下只要包含stdbool.h ,就能非常方便的使用我们常用的bool false true来操作布尔类型
但有的编译器可能不支持C99标准!即无法使用关键字_Bool以及可能无法包含stdbool.h头文件,所以我们常可以自行定义一些布尔类型的操作:
#define bool int
#define true 1
#define false 0
三、分析总结
即在不支持C99标准的编译器中无法使用_Bool以及包含头文件stdbool.h,在支持C99标准的编译器中可以无条件使用_Bool,因为它是关键字,它的值只能为0或1,以及若想使用bool,false,true则必须需包含头文件stdbool.h
四、实例测试代码
用如下程序在VS2015中测试:
#include<stdio.h>
int main(void)
{
_Bool a = -112;
printf("%d\n",a);
getchar();
return 0;
}
程序输出1
即若给a赋值0,则输出0,若给_Bool 型的a赋值其他的任何值,都会被转变成1,也即非0都会变成1!
下列程序在VS2015中通过编译,说明VS2015支持C99标准
#include<stdio.h>
#include<stdbool.h>
int main(void)
{
_Bool a = 1;
bool b = true;
bool c = false;
if (a == true)
{
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", c);
}
getchar();
return 0;
}
原文链接: https://www.cnblogs.com/Ahair/p/5005561.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/224929
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!