Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15198842
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-03-20 18:47:27

来源: 作者:antigloss 等级:一般
发布于2006-07-31 18:51 被读2284次 【字体: 】

    过去,我们一般使用 int 型变量表示真/假。C99 新增了 _Bool 类型(布尔类型)用于表示真/假。_Bool 类型的变量的值只能是 0 或者 1。无论赋予任何非零值给 _Bool 类型的变量,它的值都只会是 1。例如:

        _Bool i_am_true = 15;          // i_am_true 的值是 1
        _Bool am_i_true = (var > 15);  // 当 var 大于 15 时,am_i_true 的值为 1

顺带一提,包围 var > 15 的括号要不要都一样,因为 > 的比 = 高。不过,使用括号可以使代码的意思更加清晰明了。对于各种运算符的优先级,其实没有必要死记硬背,了解一下就可以了。实在不记得到底哪个运算符的优先级 更高的时候,就使用括号吧。此外,定义 _Bool 变量时,最好选一个意思明确的名字,让人一看就知道它是做什么用的。例如:

        _Bool no_error = 1;
        while ( no_error )
        {
            /*    ... ...       */
            /* if error happens */
            /*    no_error = 0; */
            /*    ... ...       */
        }

    包含标准头文件 stdbool.h 后,我们可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0 。例如:

        bool no_error = true;
        no_error = false;

这么做是为了和 C++ 兼容。注意,stdbool.h 是 C99 新增的。

    使用文本编辑器打开 stdbool.h,一般都会找到这样三句

        #define bool    _Bool
        #define true    1
        #define false   0

这就是为什么包含 stdbool.h 后可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0 。

参考资料:C Primer 5th Edition
          The C Programming Language 2nd Edition
          C99 标准

本文版权归 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。

阅读(899) | 评论(0) | 转发(0) |
0

上一篇:37. 关系运算符

下一篇:39. 逗号运算符

给主人留下些什么吧!~~