浅谈C语言中的布尔(bool)类型

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

/**********************************************************************************************************************


地址:http://niehan.blog.techweb.com.cn/archives/228.html

*********************************************************************************************************************/

  我们知道在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类型了。



           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/143870.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

c语言中bool的使用

布尔型(bool)变量的值只有 真 (true) 和假 (false)。 应用: ①布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果…

C语言深度剖析——bool类型,浮点数相等比较。

目录 序言: 一.bool类型 (1)C语言中到底有没有bool类型? (2)VS中的BOOL类型 二.浮点数与 0 比较 (1)浮点数的精度缺失 (2)浮点数判断相等解决方案 &a…

谷歌浏览器F12开发者工具格式化js代码

谷歌浏览器F12开发者工具调试代码时,查看js文件都是非格式化存储的,不能直观显示。 在最底部的工具栏有一个" { } " 样的图标, 点一下就格式化了。

格式化JS代码,调试JS代码

1,格式化混淆后的代码 2,调试JS代码 在chrome 浏览器的地址栏中输入:chrome://inspect/#devices

Notepad++如何格式化JS代码

Notepad本身没有快捷命令格式化JavaScript代码,需要通过安装扩展插件来实现快捷格式化JS代码的功能。本文主要介绍如何通过安装JStool插件来实现格式化JS代码的功能。 1、打开Notepad,依次选择【插件】、【Plugin Manager】、【Show Plugin Manager】 2…

JS格式化时间戳

JS格式化时间戳 前言实例 前言 有的时候需要在前端,将时间戳转化为指定格式的日期格式,又或者我们需要截取一部分时间拼进主键。博主特地总结了一下自己的方法,直接看实例代码 实例 /*** 将时间戳转化为年 月 日 时 分 秒* timestamps: 传入…

js实现日期格式化

日期对象 一、日期对象1、获取当前系统时间2、日期的原始值3、获取年份4、获取月份5、获取日6、获取星期7、获取小时8、获取分钟9、获取秒 二、通过日期对象的方法实现日期格式化实现日期格式化效果图其中包含封装一个不够两位数就补零的函数 一、日期对象 Date()是一个构造函数…

JavaScript格式化数字

格式化数字:小数点前每三位添加逗号,小数点后不改变 介绍两种常用的格式化数字的方法: 字符串方法字符串replace正则表达式 function toThousands0(item){var item0item.toString();var dot"";if (item0.indexOf(".")!…

ps-混合模式使用技巧

1.“叠加”制造金属字体效果:硬度0%的白色画笔,画在字体图层,混合模式选择“叠加”,选中该图层按Alt键创建蒙版(蒙版区是黑色不见白色可见)。 (ps之前,注意字体变化)&am…

ps中常见的混合模式

加深组: 减淡组: 对比组:

ps的颜色混合模式算法

先附上中英文对比 C实现 #define ChannelBlend_Normal(A,B) ((uint8)(A)) #define ChannelBlend_Lighten(A,B) ((uint8)((B > A) ? B:A)) #define ChannelBlend_Darken(A,B) ((uint8)((B > A) ? A:B)) #define ChannelBlend_Multiply(A,B) ((uint8)((A * …

photoshop色彩混合模式理论基础教程

在多年的ps使用过程中,对颜色理论的不断加深,深深熟识到颜色理论给ps设计带来的丰富多彩的变化. 但是往往我们一边欣喜的使用着基于颜色理论的图像处理软件,一边在强调色感的重要而去弱化对色彩理论的研究. 这到底是所谓的返璞归真还是舍本逐末? 不排除任何伟大的艺术家,都有…

C4D R26 渲染学习笔记 建模篇(0):建模常识

往期文章 C4D R26 渲染学习笔记(1):C4D版本选择和初始UI框介绍 C4D R26 渲染学习笔记(2):渲染流程介绍 C4D R26 渲染学习笔记(3):物体基本操作快捷键 C4D如何建模 默认…

JavaScript 压缩图片

上传图片时候,遇到要上传很大的图片,上传的时候就会很慢。所以,需要对图片进行压缩处理来优化上传功能。 图片压缩函数: /* * 图片压缩* img 原始图片* width 压缩后的宽度* height 压缩后的高度* ratio 压缩比率 */fun…

使用ImageCompressor.js进行图片格式抓换,使用compressorjs压缩图片,优化功能,压缩所有格式的图片

上一篇文章写的图片压缩功能只适用于image/jpeg和image/webp图像。vue实现图片压缩,支持多文件上传时压缩图片(只能支持jpeg)_ZMJ_QQ的博客-CSDN博客 在实际开发中常见的图片格式还有png以及ios中的heic图片格式,需要压缩所有格式的图片&…

js压缩图片到指定大小

lizuncong (lizuncong) GitHubI am a strong believer in reverse engineering. lizuncong has 42 repositories available. Follow their code on GitHub.https://github.com/lizuncong 需求:前端上传图片的时候通常需要提供指定大小以内的图片。比如不大于500KB…

前端JS实现图片质量压缩

前端JS实现图片质量压缩 用户在选择图片文件进行上传的时候是不会考虑文件的大小的,比如场景: 某用户只是想更换一下自己的用户头像,于是用自己的手机拍了一张照片,上传到应用中更换用户头像,然而现在的手机拍照功能…

掌握JS压缩图片,这一篇就够了

前言 公司的移动端业务需要在用户上传图片是由前端压缩图片大小,再上传到服务器,这样可以减少移动端上行流量,减少用户上传等待时长,优化用户体验。 插播一下,本文案例已整理成插件,已上传 npm &#xff…

实现图片前端JS压缩并上传

一、图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验。 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅&#…

js实现对上传图片进行压缩并且预览

js实现对上传图片的路径转成base64编码&#xff0c;并且对图片进行压缩&#xff0c;实现预览功能 需要先引入jquery: <script src"http://i.gtimg.cn/qzone/biz/gdt/lib/jquery/jquery-2.1.4.js?max_age31536000"></script> 1、html如下 <body>…