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

    C语言中的布尔类型

     一、相关基础知识                                                 

    首先bool  true  falseC++中的关键字,C语言中默认不支持这几个字符!

     二、具体内容                                                     

    C89 (ANSI C)标准中没有定义与布尔类型相关的内容

    但在C99标准中新定义了一个新的关键字_Bool ,以及新增了一个头文件 <stdbool.h>规范了布尔类型的操作,方便程序员进行调用!

     

    <stdbool.h>头文件中定义了如下内容:

    #define bool_Bool

    #define false0

    #define true1

     

    这样在支持C99标准的编译器下只要包含stdbool.h ,就能非常方便的使用我们常用的bool  false  true来操作布尔类型

    但有的编译器可能不支持C99标准!即无法使用关键字_Bool以及可能无法包含stdbool.h头文件,所以我们常可以自行定义一些布尔类型的操作:

    #define bool int

    #define true 1

    #define false 0

     三、分析总结                                                     

    即在不支持C99标准的编译器中无法使用_Bool以及包含头文件stdbool.h,在支持C99标准的编译器中可以无条件使用_Bool,因为它是关键字,它的值只能为01,以及若想使用boolfalsetrue则必须需包含头文件stdbool.h

     四、实例测试代码                                                 

    用如下程序在VS2015中测试:

    #include<stdio.h>

    int main(void)

    {

    _Bool a = -112;

    printf("%d ",a);

    getchar();

    return 0;

    }

    程序输出1

    即若给a赋值0,则输出0,若给_Bool 型的a赋值其他的任何值,都会被转变成1,也即非0都会变成1

     

    下列程序在VS2015中通过编译,说明VS2015支持C99标准

    #include<stdio.h>

    #include<stdbool.h>

    int main(void)

    {

    _Bool a = 1;

    bool b = true;

    bool c = false;

    if (a == true)

    {

    printf("%d ", a);

    printf("%d ", b);

    printf("%d ", c);

    }

    getchar();

    return 0;

    }


  • 相关阅读:
    Apache Tomcat 6.0 Tomcat6 服务因 1 (0x1) 服务特定错误而停止
    PaodingAnalysis 提示 "dic home should not be a file, but a directory"
    mappingDirectoryLocations
    多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
    java.util.ResourceBundle
    JSP验证码
    Error: [ng:areq] Argument 'LoginCtrl' is not a function, got undefined
    《横向领导力》笔记
    Java执行定时任务
    2017第43周三
  • 原文地址:https://www.cnblogs.com/Ahair/p/5005561.html
Copyright © 2011-2022 走看看