zoukankan      html  css  js  c++  java
  • C语言的布尔类型

      在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法:

    //定义一个int类型变量,当变量值为0时表示false,值为1时表示true
    int flag;
    flag = 0;
    //......
    flag = 1;

    if( flag )
    {
    //......
    }

      

      但这种做法不直观,而且没有明确flag一定是布尔值。所以我们又借助C语言的宏定义:

    //宏定义布尔类型
    #define BOOL int
    #define TRUE 1
    #define FALSE 0

    //定义一个布尔变量
    BOOL flag = FALSE;

      这种方法虽然直观,但依然是换汤不换药,变量flag在编译器看来依然是int类型。

      新版本总会改进一些不好的地方,所以在最新的C语言标准(C99)解决了布尔类型的问题。C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag。

      _Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1。

      C99还提供了一个头文件 <stdbool.h> 定义了bool代表_Bool,true代表1,false代表0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。

    //导入 stdbool.h 来使用布尔类型
    #include <stdbool.h>
    #include <stdio.h>

    //计算n!,n的值在main中定义
    int main(void)
    {
    int n = 10; //计算叠乘数
    int sum = 1; //用来存放叠乘的结果
    bool flag = false; //叠乘标记

    int num = n; //循环次数
    while( !flag )
    {
    sum = sum * (num--);
    //当num=1时结束循环
    if( num == 1)
    {
    flag = true;
    }
    }
    printf ("%d的叠乘值为 %d \n", n, sum);
    return 0;
    }




  • 相关阅读:
    Analog power pin UPF defination
    动态功耗计算
    静态功耗 计算
    Innovus 对multibit 的支持
    P &R 12
    P & R 11
    power-plan如何定
    P & R 10
    P & R 9
    线程基础
  • 原文地址:https://www.cnblogs.com/pharen/p/2340257.html
Copyright © 2011-2022 走看看