C99之前没有定义bool型,在C99中在stdbool.h中定义了_Bool为bool,当然true 和 false也没有定义。但是C++中是有bool型的,并且true 和 false也是有定义的。

所以如果是C99之前的标准,需要我们自己定义bool,如

typedef enum {false = 0, true = 1} bool;

/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2, or (at your option)

any later version.

GCC is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with GCC; see the file COPYING.  If not, write to

the Free Software Foundation, 51 Franklin Street, Fifth Floor,

Boston, MA 02110-1301, USA.  */

/* As a special exception, if you include this header file into source

files compiled by GCC, this header file does not by itself cause

the resulting executable to be covered by the GNU General Public

License.  This exception does not however invalidate any other

reasons why the executable file might be covered by the GNU General

Public License.  */

/*

* 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 */

1.FALSE/TRUE与false/true的区别:

false/true是标准C++语言里新增的关键字,而FALSE/TRUE是通过#define,这要用途

是解决程序在C与C++中环境的差异,以下是FALSE/TRUE在windef.h的定义:

#ifndef   FALSE

#define   FALSE   0

#endif

#ifndef   TRUE

#define   TRUE   1

#endif

也就是说FALSE/TRUE是int类型,而false/true是bool类型;所以两者不一样的,只不过

我们在使用中没有这种感觉,因为C++会帮你做隐式转换。

2.bool的大小与BOOL的区别:

bool在C++里是占用1字节,而BOOL是int类型,int类型的大小是视具体环境而定的;所以

来说:false/true只占用1个字节,而TRUE/FALSE视具体环境而言,以下是BOOL在windef

.h中的定义:typedef   int   BOOL;

3.NULL与0的区别:

还是让我们看一下windef.h中NULL的定义:

#ifndef   NULL

#ifdef   __cplusplus//这个是指示是用C++来编译程序

#define   NULL   0

#else

#define   NULL   ((void   *)0)

#endif

#endif

所以说:它们没有区别,只不过在C里面会做一个强制类型转换。

c语言中bool库函数,C语言中的bool相关推荐

  1. C语言中String库函数大全

    C语言中String库函数 以下内容摘自<C程序设计教程>(美)H.M.Deitel P.J.Deitel著,薛万鹏等译,机械工业出版社. void *memccpy (void *des ...

  2. php实现下单成功提示语,推荐10款提示语源码(收藏)汇总

    下面小编就为大家带来一篇h5输入框提示语 + 正常文本框提示语的实现方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧XML/HTML Code复制内容到剪贴板plac ...

  3. 欧洲语言学习统一标准C1C2音频,北京通州区有没有西班牙语培训班(为何选择西班牙语)...

    北京通州区有没有西班牙语培训班,选择北京西班牙语培训则是正确的抉择,西班牙语等级如何划分,选择西班牙语好吗,西语跟德语哪个难,少儿学西班牙语有什么优势,孩子学西班牙语启蒙好学吗,如何零基础入门西班牙语 ...

  4. 西班牙语dele等级_西班牙语DELE不同等级是什么水平?

    我们所说的西班牙语Dele考试,全名是<对外西班牙语水平证书(Diplomas de Español Como Lengua Extranjera>, 是塞万提斯学院以西班牙教育科学部的名 ...

  5. python实现时频谱,语谱图,mel语谱倒谱等

    python实现时频谱,语谱图,mel语谱倒谱等 可以和理论相结合学习:https://blog.csdn.net/qq_36002089/article/details/108378796 语音信号 ...

  6. 商 务 英 语 常 用 缩 略 语 表

    商 务 英 语 常 用 缩 略 语 表 缩 写 全 称 中 文 a accepted 承兑 A&C addenda and corrigenda 补遗和勘误 A.C.V actual cash ...

  7. python实现千牛客服自动回复语_千牛自动回复语大全

    千牛自动回复语大全 千牛自动回复语大全:对客户的疑问进行应答 1,亲.您真有眼光.这可是我们店主打产品哦.我能为您做些什么? 您还有什么需要?不必客气.没关系.这是我们应该做的.我明白了.好的.是的. ...

  8. 罗马音平假名中文可复制_韩语入门,认识韩语四十音,学唱韩语歌曲

    同是天涯爱豆粉,相逢一起学韩语!想一起学习关注我! 学习韩语首先需要了解韩语四十音,想学习韩语歌曲的伙伴只需要学会四十音既可以唱自己喜欢的韩语歌曲. 对那些从来没有接触过韩语的朋友来说,会觉得韩语很难 ...

  9. 荷兰语翻译软件测试面试,‎App Store 上的“荷兰语学习 - 荷兰语单词和短语 - 荷兰语翻译和发音”...

    ***边游荷兰边学荷兰语*** 轻松学荷兰语手册是一个免费的荷兰语应用,能够使你快速的简单的学习荷兰语. 所有荷兰语短语和单词呈现给你两个语音和原有的荷兰语写作.由荷兰当地女孩录制 保存你最喜欢的短语 ...

最新文章

  1. 互联网大脑进化简史,华为云EI智能体加入-2018年7月新版
  2. 冒号课堂§2.4:并发范式
  3. 百度eCharts体验
  4. CC2540开发板学习笔记(六)——AD控制(自带温度计)
  5. InnoDB发展历史
  6. 计算机可以辅助解决哪些医学问题,计算机辅助医学影像诊查之关键学习技术研究...
  7. python 中的 type(), dtype(), astype()的区别
  8. linux 当前用户 命令 w who(转)
  9. [译] 在Web API 2 中实现带JSON的Patch请求
  10. 如何判断电脑是否中毒(转)
  11. 不用担心JDK17收费了,Oracle 推出 JDK 8 的升级替代品
  12. 解决微信公众平台图片不可引用
  13. Region Proposal by Guided Anchoring论文翻译和理解
  14. 柳如是,当得奇女子。
  15. python10086查询系统_Python数字移动设备取证
  16. 作为有经验的程序员如果不懂Lambda表达式就说不过去了吧
  17. 计算机启动时bios主要完成的功能,电脑开机时bios的作用(急用)
  18. Python 基于GDAL包的一些地理坐标投影转换 包括GDAL的安装以及环境配置设置
  19. AWS介绍(详细好理解)
  20. 阿里云ubuntu16.4服务器部署python3.6.2+django1.11.3网站的全过程,精细讲解,本人亲测!

热门文章

  1. 阿里云服务器spring boot 发送QQ邮件25端口被封怎么办
  2. 华为OD机试真题Java实现【密室逃生游戏】真题+解题思路+代码(20222023)
  3. 2021年度总结 -- 致自己也致你们
  4. python实现目标检测源代码包_深度学习目标检测系列:faster RCNN实现|附python源码...
  5. vmware esxi安装ACS5.2踩过的坑
  6. 专升本学习计划各个阶段复习程度------2022年你的升本计划,请注意查收!!!
  7. php 换行 html_PHP实现html源码中回车换行输出_PHP教程
  8. java生成word文档freemarker
  9. RSS 简易信息聚合
  10. Spring MVC 原理