C语言中的bool类型

之前一直都没有注意到,最近在用C语言写DSP算法时,偶然间发现我函数中定义的bool类型的变量在VC6.0(我主要用它来检查一下语法错误)中编译居然报错了,说是bool类型没有定义。用了这么久的C和C++了,一直觉得bool这种基本类型,应该是C语言内置的类型,怎么会没有定义呢?事实证明,我的想法完全错误了。

      有了网络,一切问题都变得那么容易了,我很容易地搜到了相关的解答。

      C语言里面是没有bool(布尔)类型的,C++里面才有,这就是说,在C++里面使用bool类型是没有问题的。bool类型有只有两个值:true =1 、false=0。

      但是,C99标准里面,又定义了bool类型变量。这时,只要引入头文件 <stdbool.h>,就能在C语言里面正常使用bool类型。这点我在Fedora9下验证过了,它自带的编译器是 gcc 4.3.0,符合C99标准。但是在VC6.0中,会报找不到头文件 stdbool.h 的错误,看来VC6.0确实比较老了。

      所以,为了兼容各种编译器,还是自己宏定义吧。^_^

            #define bool char //宏替换为char类型是因为char与bool都只占一个字节,比较相似
            #define ture 1
            #define false 0

       当然,宏定义的bool与真实的关键字bool还是有差别的。关键字bool修饰的变量,无论赋予其任何非零值,其存储的内容都是“00000001”,而宏定义的bool所修饰的变量,其存储的内容完全取决于我们赋的值。因此,当给宏定义的bool修饰的变量赋值时,老老实实赋予true或false,条件判断时也老老实实与true或false进行比较。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值