stdbool.h 的实现

原创 2013年12月03日 22:23:07

转载请注明来源:http://blog.csdn.net/letian0805/article/details/17102403

        经常有新手问我:编译器提示无法找到true和false,怎么处理?无法找到stdbool.h,怎么处理。其实这不是什么难题。如果系统没有stdbool.h(因为某些原因编译器不提供了或者系统不提供了),我可以自己实现一个。

        要实现stdbool.h就要了解 if 语句的特点。if 语句的括号里只有两种值:真或假(成立或不成立)。真值表里用1表示真,用0表示假。所以,我们可以用1来当true,用0来当false。怎么做?有两种方法:1)用宏定义。2)用枚举。第一种方法的优点是:不会和已有的相冲突;缺点:没有构造新类型。第二种方法的优点是:构造了新的类型;缺点:可能与已有的定义相冲突。

        产生冲突必然是很麻烦的。所以,我们应该采用第一种方法。当然,文章末尾也给出了第二种方法的实现。

用宏定义的方法如下:

#ifndef __STDBOOL_H

#define __STDBOOL_H

 

#undef bool

#undef true

#undef false

 

#define bool int

#define false 0

#define true (!false)

 

#endif

 

用枚举的方法如下:

#ifndef __STDBOOL_H

#define __STDBOOL_H

 

typedef enum{

    false = 0,

    true = !false,

}bool;

 

#endif

 

将以上代码保持为stdbool.h放到头文件目录就可以了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C语言中的stdbool.h头文件

Win7下安装的VS2015中的stdbool.h的位置为: F:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\includestdboo...

c语言中<stdbool.h>的使用

(1)使用了后,可使用true和false来表示真假。 (2)在循环语句中进行变量声明是C99中才有的,因此编译时显式指明 gcc -std=c99 prime.c [lujinhong@luji...

C语言中有没有bool类型?

问题 首先请大家回想一下,在你们所编写的C程序中,是否使用过bool(布尔)类型?bool类型一般用来表示真假,是程序设计中一个很基本的数据类型。但是,C语言里面并不直接支持bool类型。一些初学C...
  • syzcch
  • syzcch
  • 2012年11月07日 16:10
  • 6884

几大常用头文件stdio.h,stdio.h ,stdbool.h里的定义

C 标准库 -  简介 stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。 库变量 下面是头文件 stdio.h 中定义的变量类型: 序号 变量 & 描述...

h5实现豆瓣电影排行

  • 2017年11月13日 17:22
  • 37KB
  • 下载

AgentWeb+VasSonic实现h5首页加速

  • 2017年11月09日 15:28
  • 451KB
  • 下载

Mp4v2实现h264+aac打包成Mp4视频文件

使用mp4v2实现录制mp4视频,需要准备如下信息: 1、获取mp4v2源码并编译成库文件,对于mp4v2的编译可以看前面的文章android 编译mp4v2 2.0.0生成动态库 ; 2、获取...

使用最新的iOS9 开始推荐使用的<Photos/Photos.h>这个框架实现保存图片或者视频

获得自定义的所有相簿// 获得所有的自定义相簿 PHFetchResult *assetCollections = [PHAssetCollection fetchAssetCollectionsWi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:stdbool.h 的实现
举报原因:
原因补充:

(最多只允许输入30个字)