[开发工具] 怎样一劳永逸定义 bool?

[复制链接]
1573|6
 楼主| 情场探花 发表于 2016-5-8 21:39 | 显示全部楼层 |阅读模式
诸位好。我接手了一个别人的程序,keil, STM32103。因为是刚接手,所以第一步是什么都不改、编译通过。结果遇到一个问题。
整个程序包括多个 c 文件,每个 c 当然又包括了一堆 h。说 bool 未定义。
我试着在 main.c 开头处加上  
typedef enum _BOOL_
{
        FALSE,
        TRUE
}bool;

结果 main.c 用到的这些 h 都认识 bool 了。可是,其他那些 c 用到的 h 还是不认识 bool。我要是一个个 typedef 过来,也实在吃不消啊。
请问有什么办法一次性搞定呢?
多谢!!
zhuotuzi 发表于 2016-5-8 23:12 | 显示全部楼层
查找替换应该不错吧。如果文件少的话。
NF同学 发表于 2016-5-8 23:43 | 显示全部楼层
难道不能#ifndef   #define #endif 吗?
 楼主| 情场探花 发表于 2016-5-9 07:11 | 显示全部楼层
查找替换当然不难了,但是这样就会修改原来的程序,我想尽量不要动原来的程序,人家那么写肯定有道理的。
当然也可以 #ifndef   #define #endif ,但那样还是得在每个文件里都加上这句。
再说了,C 里面本来是没有 bool 的,所以人家肯定是在某个地方定义了之后,才能在各个文件里使用。我就想知道他是在哪里定义的。
xyz549040622 发表于 2016-5-9 07:21 | 显示全部楼层
情场探花 发表于 2016-5-9 07:11
查找替换当然不难了,但是这样就会修改原来的程序,我想尽量不要动原来的程序,人家那么写肯定有道理的。
...

工程文件在你手里了,你找找应该有一个都包含的.h文件中定义的了。
hgjinwei 发表于 2016-5-9 08:03 | 显示全部楼层
从报未定义错误的文件开始,找包含的头文件,直到找到所有C都包含的头文件。

如果没有这个文件,那么这个"bool"就是人家编译器已经定义了的,此时,想不改都不行了。
luodewei 发表于 2016-5-9 23:27 来自手机 | 显示全部楼层
碰到过,你找找老工程的stm32f10x.h,应该就有定义
您需要登录后才可以回帖 登录 | 注册

本版积分规则

472

主题

1259

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部