各语言的布尔值 和空值
C语言:
在C99出现之前,C语言是没有布尔类型的,只能使用宏定义定义
typedef enum{false=0, true=1} bool; //注意这里的false和true其实表示的是int类型
而在C99中定义了一个头文件stdbool.h
#define bool _Bool
#define true 1
#define false 0
对bool做了声明,此时它还是int类型。
C++语言:
bool类型实际上是C++引入的。false/true是标准C++语言里面新增的关键字。而FALSE/TRUE是通过
#define,这是为了解决程序在C于C++环境的差异。以下是FALSE/TRUE在windef.h的定义:
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
也就是说FALSE/TRUE是int类型,而false/true是bool类型;所以两者不一样的,只不过
我们在使用中没有这种感觉,因为C++会帮你做隐式转换。
BOOL值是宏定义,对应TRUE , FALSE. 1表示TRUE, 0表示FALSE。一般用0表示FALSE,非0表示真。
bool在C++是1个字节,而BOOL是int类型,大小视具体环境而定。
BOOL在windef.h中
C语言:
在C99出现之前,C语言是没有布尔类型的,只能使用宏定义定义
typedef enum{false=0, true=1} bool; //注意这里的false和true其实表示的是int类型
而在C99中定义了一个头文件stdbool.h
#define bool _Bool
#define true 1
#define false 0
对bool做了声明,此时它还是int类型。
C++语言:
bool类型实际上是C++引入的。false/true是标准C++语言里面新增的关键字。而FALSE/TRUE是通过
#define,这是为了解决程序在C于C++环境的差异。以下是FALSE/TRUE在windef.h的定义:
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
也就是说FALSE/TRUE是int类型,而false/true是bool类型;所以两者不一样的,只不过
我们在使用中没有这种感觉,因为C++会帮你做隐式转换。
BOOL值是宏定义,对应TRUE , FALSE. 1表示TRUE, 0表示FALSE。一般用0表示FALSE,非0表示真。
bool在C++是1个字节,而BOOL是int类型,大小视具体环境而定。
BOOL在windef.h中