C语言:C99中的bool量
在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量相关推荐
- 【C语言】中的版本规范(C89 C99等)
C语言中的版本 一.相关基础知识 ISO:国际标准化组织(International Organization for Standardization,ISO)简称ISO,是一个全球性的非政府组织,是 ...
- c 语言bool 类型数据_C ++中的bool数据类型
c 语言bool 类型数据 In C++ programming language, to deal with the Boolean values – C++ added the feature o ...
- c语言中使用bool_在C语言中使用bool
c语言中使用bool First, understand the bool in C++ programming language. In C++ programming, "bool&qu ...
- C语言中定义bool类型
C语言里面是没有bool(布尔)类型的,C++里面才有,这就是说,在C++里面使用bool类型是没有问题的.bool类型有只有两个值:true =1 .false=0. 不过 C语言中可以自己定义咯 ...
- C语言(C++语言)中##(两个井号)和#(一个井号)用法[转]
C语言(C++语言)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关 于#和## 在C语言的宏中,#的功能是将其后面的宏参数进 ...
- c语言中有自己的bool类型
有人说c语言中没有bool类型,只有c++中有,果真如此? 先看没有bool类型时,c中表示bool类型的方法: 1. typedef int bool; #define false 0 #defin ...
- 符号常量和变量有什么区别_“变量”和“常量”,计算机程序中的那个“量”是什么“量”...
石头这个学期上了一门大一的"C语言"课程,这是石头第二次上这门课了,我决定把这门课中学生比较容易混淆的.不好理解的概念用文章的形式记录下来. 无论是什么量,最终归为0 1 01 变 ...
- 隐含马尔可夫模型在语言处理中的应用(Z)
Original address: http://www.google.com.hk/ggblog/googlechinablog/2006/04/blog-post_1583.html 数学之美 系 ...
- c语言c99标准_C语言的灵魂指针,配合这个新增的关键字,能够生成更高效的程序...
正如我前面的文章提到的,C语言虽然已经比较成熟,但是近些年来也是有所发展的--比如增加了许多新特性.遗憾的是,可能因为C语言程序员的工资比不过互联网程序员,国内很多教材比较老旧,几乎不涉及近些年来C语 ...
最新文章
- jQuery / jQuery mvc plugin
- HDU 4635 Strongly connected(缩点、最多可加边数使得仍然非强连通)
- 作为管理者的你,如何用人?一点建议给你
- WP8.1学习系列(第十二章)——全景控件Panorama开发指南
- Linux 链接详解----动态链接库
- 矩阵论基础知识2(正交、 Givens 变换、Householder变换)
- Asp.Net Core 发布到IIS
- Python模块(3)--PIL 简易使用教程
- c# 配置文件App.config操作类库
- 一键换ip命令_软网推荐:高效命令行备份更简单
- C++ 函数模板与分离编译模式
- linux安装python的拓展包,linux 安装python拓展包pexpect
- 【资源】1497- Vue超全资源,收藏!
- Python实现图像的全景拼接
- quartus基本操作
- 什么是事件流? 什么是事件冒泡? 什么是事件捕获?
- sql server操作1:数据库及基本表的建立
- 金仓数据库 KingbaseES 插件参考手册(23. dbms_utility)
- python气象卫星云图解析_python下载卫星云图合成gif
- Android 自定义View漫飞舞超炫超浪漫特效
热门文章
- Java面向对像小项目 慕课网Java入门第二季滴滴租车系统
- 这三个是头发杀手,遇到了该怎么办?
- python里的集合add函数_python集合的新增元素方法整理
- 关系型数据库和非关系型数据库有哪些?两类常见的数据库的介绍与对比
- 推荐一位零基础Python网络爬虫学习者,原来也爬虫也没有那么难
- 原型、原型链和原型继承
- www.tiobe.com_每周综述:Kubernetes 1.15,Istio 1.2,TIOBE索引更新等
- 来凯医药冲刺港交所上市:斥巨资购买专利许可权,将持续受制于人
- JavaScript中childNodes默认格式问题
- 正文1:网页的交互方式