为什么有人使用int而不是bool数据类型?

Inf*_*ity 0 c c++ typedef

最近,我在一个项目中看到他们将defint int键入为BOOL并用它代替了bool。这样做有什么好处吗?

typedef int BOOL;
Run Code Online (Sandbox Code Playgroud)

Jes*_*uhl 6

如果他们经常与C代码进行交互,则可能会这样做。由于C没有bool类型-至少要等到C11(我认为是C99,或者可能是C99)才引入_Bool类型-我真的不记得它是否与C ++兼容bool-他们应该只采用bool关键字(IMHO) ,但我离题了。

同样,在C ++获得的C ++ 98标准之前的旧C ++代码库中很常见bool

因此,传统C兼容性就是答案。

  • C不想采用`bool`,因为太多的旧代码已经定义了自己的`bool`版本,并且他们不想使所有这些代码无效。相反,他们从保留的名称空间中创建了另一种类型(即,名称以下划线开头,后跟一个大写字母)。如果您没有被遗留代码束缚,他们仍然通过使用`<stdbool.h>`使得使用`bool`确实非常容易。对我来说似乎是一个合理的妥协。 (4认同)