• [整理]标准C中的"布尔"类型


    C语言提供的基本数据类型:char , int ,float, double。

    为什么没有其他语言中常见bool布尔数据类型呢?

    1.在标准C语言(ANSI C)中并没有bool数据类型

       标准C中,表达式的值0为假,非0为真。一般,为了提高代码可阅读性,自定义3个int类型的宏:

    #include <stdio.h>
    
    #define bool int
    #define false 0
    #define true 1
    
    int main(){
        bool result = true;//true的值实际是int类型的1
    }

    当然,使用char类型来定义宏也是可以的。

    2.C语言不是没有布尔类型, 而是在C99标准之前没有
       现在,在C99中,通过在源文件中包含stdbool.h这个头文件,就可以在C语言里使用_Bool类型了,这是C99标准新增的头文件,引入_Bool数据类型,和C++兼容。

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

    注意:VS2010的编译器只支持ANSI C,不支持C99。

    3.我们必须知道的:
      (1).一般提到标准C,指的是“ANSI C”,有时称为"C89"。
      (2).ANSI C和ISO C的历史

    C 的第一个标准是由ANSI发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了,但名称ANSI C(而不是 ISO C)仍被广泛使用。一些软件开发者使用ISO C,还有一些使用 Standard C。

    C89
    1983年,美国国家标准协会组成了一个委员会,X3J11,为了创立 C 的一套标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSI X3.159-1989"Programming Language C"正式生效。这个版本的语言经常被称作"ANSI C",或有时称为"C89"(为了区别C99)。


    C90
    在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会采纳为ISO/IEC 9899:1990。这个版本有时候称为C90。因此,C89和C90通常指同一种语言。


    C99
    主条目:C99
    在2000年三月,ANSI 采纳了 ISO/IEC 9899:1999 标准。这个标准通常指C99。


    C11
    主条目:C11
    在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准。这个标准通常即C11,它是C程序语言的现行标准

    参考:
    1.ANSI C

    2.C99

  • 相关阅读:
    Word 转换为 PDf 的技术方案
    [转载]sql server 常用存储过程
    Redmine 初体验
    Quartz.net Tutorial Lesson 1
    [转载]sql server TSQL 区分字符串大小写 的两种方法
    [原创]sql server inner join 效率测试
    java实现树的一般操作
    【转】Mybatis中进行批量更新
    【转载】单例模式的7种写法(整合自两篇文章)
    mybtis批量insert传入参数为list
  • 原文地址:https://www.cnblogs.com/Benoly/p/3777382.html
Copyright © 2020-2023  润新知