bool类型_bool类型什么为真

bool类型_bool类型什么为真转自:http://www.vcgood.com/archives/3709我们知道在C++里有专门的bool类型,用来表示真或假。但是在C语言里没有这样的类型(至少我是一直这么认为的),表达式的值0

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

转自:http://www.vcgood.com/archives/3709

 

我们知道在C++里有专门的bool类型,用来表示真或假。但是在C语言里没有这样的类型(至少我是一直这么认为的),表达式的值0为假,非0为真。所以条件判断语句( if(…)、while(…) )非常灵活,甚至一个指针类型都可以是条件表达式。

  为了使程序更清晰,我们常常会给出如下的宏定义:

  typedef int BOOL;

  #define TRUE 1

  #define FALSE 0

  这是最常见的写法,能被任何C语言编译器认可。

  今天我在一段程序里看见这么一行 #include ,这个陌生的头文件还以std打头而且还和bool有关,引起了我的警觉,立刻百度之。得知这是C99标准新增的头文件,意在引入bool类型,使之和C++兼容。随后我看了一下这个头文件的源代码,内容如下:

  /*

  * ISO C Standard: 7.16 Boolean type and values

  */

  #ifndef _STDBOOL_H

  #define _STDBOOL_H

  #ifndef __cplusplus

  #define bool _Bool

  #define true 1

  #define false 0

  #else /* __cplusplus */

  /* Supporting in C++ is a GCC extension. */

  #define _Bool bool

  #define bool bool

  #define false false

  #define true true

  #endif /* __cplusplus */

  /* Signal that all the definitions are present. */

  #define __bool_true_false_are_defined 1

  #endif /* stdbool.h */

  这个头文件很短,而且也很明了,不过我对_Bool这个类型产生的兴趣。又一翻百度,发现这是C99标准引入的新的关键字。对,是关键字,而不是宏定义,也不是typedef。通过sizeof(_Bool);得知这个类型占1个字节,而且无论给这个类型的变量赋任何非0整数值,其值都是1,这也说明了他不是其他整数类型的别名。

  好了,其实说白了,C语言不是没有布尔类型,只能说在C99标准之前没有。现在只要在源文件中包含stdbool.h这个头文件,就可以在C语言里像C++那样使用bool类型了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167258.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 电商网站后台九大功能模块详解[通俗易懂]

    电商网站后台九大功能模块详解[通俗易懂]电商网站后台九大功能模块详解 随着电子商务的发展,网上购物正在趋于一种时尚,电子商务网站也逐渐成为企业顺应潮流的标配。大多数人知道可能在电子商务网站前端有查询,注册登录,购物车等等功能。可是您知道建设电子商务网站后台功能模块都有哪些么?今天我们就聊聊电商网站后台功能模块的那些事。电子商务网站整个系统的后端管理,按功能划分为九大模块,包括商品组织管理、订单处理、内容发布管理等模块。一、后台…

    2022年10月1日
    1
  • Linux发邮件-ubuntu和centos

    Linux发邮件-ubuntu和centosLinux发邮件–ubuntu和centos当我用公司的服务器和虚拟机都尝试过发邮件之后,发现真是坑,Ubuntu和centos发邮件,安装配置都是有区别的;注意:这里是用第三方邮件发送邮件。直接上表格来对比吧,这个步骤亲测可用的,但是也要注意mailx的版本号。1、查看系统版本cat/etc/issue或uname-a2、查看邮件安装包版本(1)ub…

    2022年10月20日
    0
  • C语言strcat()函数:连接字符串

    C语言strcat()函数:连接字符串

    2021年9月11日
    75
  • xshell怎么配置_winedt使用教程

    xshell怎么配置_winedt使用教程一、XShell的作用二、下载XShell三、安装XShell四、使用XShell连接Linux服务器Xshell免费版官网下载地址:https://www.xshell.com/zh/free-for-home-school/如官网打不开,可以从网盘下载链接:https://pan.baidu.com/s/1NJGWZHkByakOkQpKfkc7Yg提取码:r0ds

    2022年9月10日
    0
  • linux查看80端口占用情况_netstat查看端口linux

    linux查看80端口占用情况_netstat查看端口linux前言平常使用linux,我们经常需要查看哪个服务占用了哪个端口,接下来就为大家介绍了2种Linux查看端口占用情况可以使用lsof和netstat命令。1.lsof-i:端口号用

    2022年7月31日
    4
  • linux route add 接口,route add命令如何使用「建议收藏」

    linux route add 接口,route add命令如何使用「建议收藏」routeadd命令用于在本地IP路由表中显示和修改条目,使用不带参数的ROUTE可以显示帮助,代码为【route[-f][-p][command[destination][masknetmask]….】。routeadd命令使用情况:一、具体功能该命令用于在本地IP路由表中显示和修改条目。使用不带参数的ROUTE可以显示帮助。二、语法详解route[-f][-p][c…

    2022年8月12日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号