【问题标题】:C99 boolean data type?C99 布尔数据类型?
【发布时间】:2011-06-13 16:00:15
【问题描述】:

什么是 C99 布尔数据类型以及如何使用它?

【问题讨论】:

    标签: c types boolean c99


    【解决方案1】:

    包含<stdbool.h> 标头

    #include <stdbool.h>
    
    int main(void){
      bool b = false;
    }
    

    truefalse 分别扩展为 10

    部分7.16 布尔类型和值&lt; stdbool.h &gt;

    • 1 标头&lt;stdbool.h&gt; 定义了四个宏。
    • 2 宏
      • 布尔型 扩展为 _Bool。
    • 3 其余三个宏适用于#if 预处理指令。他们 是
      • true : 扩展为整数常量 1,
      • false:扩展为整数常量 0,并且
      • __bool_true_false_are_defined 展开为整数常量 1。
    • 4 尽管有 7.1.3 的规定,但程序可能未定义,并且可能随后 重新定义宏 bool、true 和 false。

    【讨论】:

    • 还应该注意的是,转换为_Bool(通过赋值、强制转换等)实际上是通过在表达式前面加上!!
    【解决方案2】:

    请在DaniWeb 上找到的相关线程上查看答案。

    摘录并在此引用,方便参考:-


    c99中新关键字的使用

    _Bool:C99 的布尔类型。仅在以下情况下才建议直接使用 _Bool 维护已经存在的遗留代码 为 bool、true 或 错误的。否则,这些宏是 在&lt;stdbool.h&gt; 中标准化 标题。包括那个标题和你 可以像你一样使用 bool C++。

    #include <stdio.h>
    #include <stdbool.h>
    
    int main ( void )
    {
      bool b = true;
    
      if ( b )
        printf ( "Yes\n" );
      else
        printf ( "No\n" );
    
      return 0;
    }
    

    【讨论】:

    • +1 用于解释为什么 _Boolbool 一起存在。对理解很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2019-03-05
    • 2011-04-13
    • 2011-03-18
    • 1970-01-01
    相关资源
    最近更新 更多