我有一个 double 类型的 bool,所以已添加到标题中:
typedef double bool;
extern bool true;
extern bool false;
和:
bool true = 1.0;
bool false = 0.0;
在相应的 C 文件中。
但是,我现在有多个 true 的错误定义,false 的定义相同,指向 C 文件中第一个函数的第一行。显示“先前声明在这里”的错误指向同一行......它始终指向它的文件中首先放置哪个函数没有任何区别。
我的头文件,虽然包含在一个通用头文件中,但确实有包含保护,所以我希望那里不应该有多个 true 和 false 声明。
我已经使用 vars tTrue 和 tFalse 将 typedef 更改为 tBool,这解决了问题,但我不明白为什么它首先会发生?由于代码中仍然有一些使用 true 和 false 的 bool 类型,因此编译器似乎已经将 true 和 false 定义为 ints ......虽然我不认为 C 这样做了
我使用的是使用 mingw 的 dev-c++ 4.9.9.2 IDE,但我不确定 mingw 是哪个版本。
有谁知道为什么会这样?