[C++]Linux之C编程异常[true未定义解决方案]


C语言里面是没有bool(布尔)类型的,C++里面才有,这就是说,在C++里面使用bool类型是没有问题的。bool类型有只有两个值:true =1 、false=0。

      但是,C99标准里面,又定义了bool类型变量。这时,只要引入头文件 <stdbool.h>,就能在C语言里面正常使用bool类型。这点我在Fedora9下验证过了,它自带的编译器是 gcc 4.3.0,符合C99标准。但是在VC6.0中,会报找不到头文件 stdbool.h 的错误,看来VC6.0确实比较老了。

      所以,为了兼容各种编译器,还是自己定义吧。^_^

  

//方法1
#define bool char(或者 int等均可)
#define ture 1
#define false 0

//方法2:注意:但是有些编译器没有这个头文件,那么可以使用方法1(原理其实是相同)
#include <stdbool.h>  
/*
//部分代码片段

#ifndef __STDBOOL_H
#define __STDBOOL_H

#undef bool
#undef true
#undef false

#define bool int
#define false 0
#define true (!false)
#endif

*/

 

 

 

参考文献:

  【C语言中有bool类型吗?】(http://blog.csdn.net/liuqiqi677/article/details/6703615)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM