今天凯凯让我给他调试一个简单的程序
我在VC6中编译的时候 发现报错:缺少stdbool.h这个头文件。
于是上baidu查找了相关资料,发现这是一个C99标准库中定义bool类型的头文件,而起VC不支持C99这个标准库。
后来找到了stdbool.h这个代码,自然想到了自己建头文件的方法,但是添加进去之后,编译依然没法通过。
分析了下问题后发现集中在
- #if __STDC_VERSION__ < 199901
- typedef int _Bool
- #endif
- #define bool _Bool
typedef用来定义了int的一个别名_Bool, 然后又把bool 定义成_Bool 这个类型,其实就是等价于#define bool int
在没有查出编译错误的原因的情况下 我按照上面的思路进行了等价替换,即
- #define bool int
通过编译,程序也能运行。
但是我还是回避了上面代码无法通过编译的问题,继续查找原因。。。。。。。
唉,反应了半天原来是typedef后面少了个; 汗颜。。。。。。保留日志纪念一下。。。。。。