在C99标准之前,只能自定义bool量,常见的方式就是定义宏和枚举,例如:

① 枚举法

typedef enum bool = {  False,  Ture  }

② 定义宏

typedef int BOOL ;
#define true 1
#define false 0int main()
{BOOL a = true;BOOL b = false;
}

如上所示,BOOL量是通过int型进行定义,那sizeof(BOOL)结果就是4。

在C99中,引入了bool量,bool量通过char型定义存放在头文件stdbool中,stdbool如下:

/** ISO C Standard:  7.16  Boolean type and values  <stdbool.h>*/#ifndef _STDBOOL_H
#define _STDBOOL_H#ifndef __cplusplus#define bool   _Bool
#define true    1
#define false   0#else /* __cplusplus *//* Supporting _Bool in C++ is a GCC extension.  */
#define _Bool   bool#if __cplusplus < 201103L
/* Defining these macros in C++98 is a GCC extension.  */
#define bool    bool
#define false   false
#define true    true
#endif#endif /* __cplusplus *//* Signal that all the definitions are present.  */
#define __bool_true_false_are_defined   1#endif /* stdbool.h */

编译器不同,非0值不同,GCC编译时默认非0为1。

#include <stdio.h>
#include <stdbool.h>int main(void)
{printf("sizeof(bool):%d\n",sizeof(bool));printf("%d\n",true);printf("%d\n",false);return 0;
}

编译结果为:

C语言:C99中的bool量相关推荐

  1. 【C语言】中的版本规范(C89 C99等)

    C语言中的版本 一.相关基础知识 ISO:国际标准化组织(International Organization for Standardization,ISO)简称ISO,是一个全球性的非政府组织,是 ...

  2. c 语言bool 类型数据_C ++中的bool数据类型

    c 语言bool 类型数据 In C++ programming language, to deal with the Boolean values – C++ added the feature o ...

  3. c语言中使用bool_在C语言中使用bool

    c语言中使用bool First, understand the bool in C++ programming language. In C++ programming, "bool&qu ...

  4. C语言中定义bool类型

    C语言里面是没有bool(布尔)类型的,C++里面才有,这就是说,在C++里面使用bool类型是没有问题的.bool类型有只有两个值:true =1 .false=0. 不过 C语言中可以自己定义咯 ...

  5. C语言(C++语言)中##(两个井号)和#(一个井号)用法[转]

    C语言(C++语言)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关 于#和## 在C语言的宏中,#的功能是将其后面的宏参数进 ...

  6. c语言中有自己的bool类型

    有人说c语言中没有bool类型,只有c++中有,果真如此? 先看没有bool类型时,c中表示bool类型的方法: 1. typedef int bool; #define false 0 #defin ...

  7. 符号常量和变量有什么区别_“变量”和“常量”,计算机程序中的那个“量”是什么“量”...

    石头这个学期上了一门大一的"C语言"课程,这是石头第二次上这门课了,我决定把这门课中学生比较容易混淆的.不好理解的概念用文章的形式记录下来. 无论是什么量,最终归为0 1 01 变 ...

  8. 隐含马尔可夫模型在语言处理中的应用(Z)

    Original address: http://www.google.com.hk/ggblog/googlechinablog/2006/04/blog-post_1583.html 数学之美 系 ...

  9. c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...

    正如我前面的文章提到的,C语言虽然已经比较成熟,但是近些年来也是有所发展的--比如增加了许多新特性.遗憾的是,可能因为C语言程序员的工资比不过互联网程序员,国内很多教材比较老旧,几乎不涉及近些年来C语 ...

最新文章

  1. jQuery / jQuery mvc plugin
  2. HDU 4635 Strongly connected(缩点、最多可加边数使得仍然非强连通)
  3. 作为管理者的你,如何用人?一点建议给你
  4. WP8.1学习系列(第十二章)——全景控件Panorama开发指南
  5. Linux 链接详解----动态链接库
  6. 矩阵论基础知识2(正交、 Givens 变换、Householder变换)
  7. Asp.Net Core 发布到IIS
  8. Python模块(3)--PIL 简易使用教程
  9. c# 配置文件App.config操作类库
  10. 一键换ip命令_软网推荐:高效命令行备份更简单
  11. C++ 函数模板与分离编译模式
  12. linux安装python的拓展包,linux 安装python拓展包pexpect
  13. 【资源】1497- Vue超全资源,收藏!
  14. Python实现图像的全景拼接
  15. quartus基本操作
  16. 什么是事件流? 什么是事件冒泡? 什么是事件捕获?
  17. sql server操作1:数据库及基本表的建立
  18. 金仓数据库 KingbaseES 插件参考手册(23. dbms_utility)
  19. python气象卫星云图解析_python下载卫星云图合成gif
  20. Android 自定义View漫飞舞超炫超浪漫特效

热门文章

  1. Java面向对像小项目 慕课网Java入门第二季滴滴租车系统
  2. 这三个是头发杀手,遇到了该怎么办?
  3. python里的集合add函数_python集合的新增元素方法整理
  4. 关系型数据库和非关系型数据库有哪些?两类常见的数据库的介绍与对比
  5. 推荐一位零基础Python网络爬虫学习者,原来也爬虫也没有那么难
  6. 原型、原型链和原型继承
  7. www.tiobe.com_每周综述:Kubernetes 1.15,Istio 1.2,TIOBE索引更新等
  8. 来凯医药冲刺港交所上市:斥巨资购买专利许可权,将持续受制于人
  9. JavaScript中childNodes默认格式问题
  10. 正文1:网页的交互方式