我在写一些代码时产生了这个疑问。
int i = true;
是"始终"保证我将具有值1的变量,还是再次取决于我正在使用的编译器?进一步对于某些Win32 API,它接受Bool作为参数,如果我通过Bool变量会发生什么?
答案
Bool是C ++中的基本数据类型。转换true
到整数类型将产生1,然后转换false
将产生0(4.5/4和4.7/4)。在C中,直到C99之前,都没有Bool Datatepe,人们做了类似的事情
enum bool {
false, true
};
Windows API也是如此。从C99开始,我们有_Bool
作为基本数据类型。包括stdbool.h
将要
Typedef #define
那是bool
并提供常数true
和false
。由于与现有代码的兼容性问题,它们并没有使BOOL成为基本数据类型(因此是关键字)。