在DSP程序中,布尔类型不能直接拿来用,要定义一下,可以通过定义为枚举类型来定义:

typedef enum{FALSE=0,TRUE} BOOL;

一般枚举类型的定义是这样的:enum [枚举名] {枚举元素列表};也可以声明没有枚举名的枚举类型,就如上面的定义那样,后边的BOOL是枚举类型的变量,可以对其进行赋值,不过只能用FALSE或者TRUE进行赋值。

关于C语言中的bool类型,转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类型了。

DSP程序中的布尔类型使用的更多相关文章

  1. 【C语言】中的布尔类型

    C语言中的布尔类型 一.相关基础知识 首先bool  true  false为C++中的关键字,C语言中默认不支持这几个字符! 二.具体内容 在C89 (ANSI C)标准中没有定义与布尔类型相关的内 ...

  2. C++中的布尔类型和引用

    1,C++ 中的布尔类型: 1,C++ 在 C 语言的基础类型系统之上增加了 bool: 1,C 语言中,没有 bool 类型存在,往往都是用整型代替 bool 类型,常用 0 表示假,用 1 表示真 ...

  3. EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型

    EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型 EntityFrameworkCore Entity public class Entity { publ ...

  4. python基础语法_python中的布尔类型详解

    转自:http://www.cnblogs.com/521yywzyzhc/p/6264885.html   我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是 ...

  5. [整理]标准C中的"布尔"类型

    C语言提供的基本数据类型:char , int ,float, double. 为什么没有其他语言中常见bool布尔数据类型呢? 1.在标准C语言(ANSI C)中并没有bool数据类型 标准C中,表 ...

  6. Odoo “坑” 系列之 XML中的布尔类型

    在Odoo中试图通过XML方式更新某条Record的值,却意外发现根本不能更新,经查,对于XML中Boolean类型的字段,更新的方式应该采用eval的方式.

  7. 字符串0.在php和js中转换为布尔类型 值是false还是true

    在php 中 $a = '0'; $b = (bool)$a; var_dump($a);//输出false 在js中官方说明: Note:If the value parameter is omit ...

  8. html中属于布尔类型的属性

    1.noshade,用来表示有无阴影,多用于在<hr />标签当中 2.ckecked,用来表示是否默认选中,多用于单选按钮<input type="radio" ...

  9. 程序执行流程/布尔类型与布尔:运算猜数字游戏;库的使用:turtle

    myPrice = 6 while True: guess = int(input()) if guess > myPrice: print('>') elif guess < my ...

随机推荐

  1. keychain 的学习

    keychain 的使用    http://www.cnblogs.com/ios8/archive/2012/06/25/iOS-keychain.html

  2. 压缩感知重构算法之IHT算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  3. 移动开发在路上-- IOS移动开发系列 网络交互四(2)

    接着上次的讲,这次我们讲 网络请求的封装  打开创建的项目,让我们一起来继续完成他, 首先我们来创建一个NSobject 的文件 圈住出来的轻一点要注意.千万不要搞错了 创建好之后,开始编写代码, 我 ...

  4. SpringBoot中JdbcTemplate

    步骤如下: 依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  5. Python文件头注释的含义,你肯定不懂

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:冰火梦幻  本文档描述了Python语言文件头里典型注释的含义. 1. ...

  6. 深入学习 OLED Adafruit_SSD1306库(8266+arduino)

    QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 SSD1306屏幕驱动库,最出名应该就是u8g2,读者可以参考 玩转u ...

  7. 【JS】368- 浅析JavaScript异步

    一直以来都知道 JavaScript是一门单线程语言,在笔试过程中不断的遇到一些输出结果的问题,考量的是对异步编程掌握情况.一般被问到异步的时候脑子里第一反应就是 Ajax, setTimseout. ...

  8. 后端程序猿标配之linux命令

    超清图片,可放大查看. 来源:https://www.cnblogs.com/ryanlamp/p/7511883.html

  9. 一个非常美的FlutterUI组件扩展集:FLUI

    项目地址 FLUI 官网 下载 Demo APK 体验 这是一个群内的网友写的,感觉里面的组件风格非常美,封装的挺到位的,在此推荐给大家,具体可以参考学习. 可以学到的知识还是挺多的,组件UI封装可以 ...

  10. springcloud-微服务架构基础

    一 前言 学习微服务要从基础的架构学起,首先你要有个微服务的概念才能学习对吧!!如果你都不知道啥是微服务,就一头扎进去学习,你自己也觉得自己也学不会对吧.本篇文章主要让大家快速了解基础的架构分格,以便 ...