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...
  • qq_25077833
  • qq_25077833
  • 2016年11月25日 23:36
  • 4944

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

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

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

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

本人精心收集,c++头文件一览

  • 2010年01月13日 20:01
  • 3KB
  • 下载

【Linux】bool的使用

一些你认为理所当然的东西,在LinuxC中不是说用就用,例如bool布尔型由于其C语言标准古老,就像如下一段,利用函数返回值判断是否正数,很平常的代码: #include bool is_posit...
  • yongh701
  • yongh701
  • 2015年12月23日 09:44
  • 2561

C99标准之前没有bool类型(C99提供)

我们知道在C++里有专门的bool类型,用来表示真或假。但是在C语言里没有这样的类型。 表达式的值0为假,非0为真。所以条件判断语句( if(…)、while(…) )非常灵活,甚至一个指针类型都可以...
  • rl529014
  • rl529014
  • 2016年04月19日 12:33
  • 1660

JNI中cpp文件编写,解决Unresolved inclusion问题

1.
  • ymangu
  • ymangu
  • 2014年08月14日 09:49
  • 2685

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

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

新一代高效视频编码H.265HEVC原理、标准与实现 [万帅,杨付正 编著] 2014年版

  • 2017年10月27日 22:34
  • 72.9MB
  • 下载

微信公众号H5支付demo(Servlet实现)

  • 2017年10月25日 15:06
  • 54KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:stdbool.h 的实现
举报原因:
原因补充:

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