解释一个类型,最好的办法就是看看它的定义:
#ifdef __vxworks
typedef int BOOL;
#else
#undef BOOL
typedef unsigned char BOOL;
#endif
#define YES (BOOL)1
#define NO (BOOL)0
由上述定义,我们可以知道:
1.YES天然是BOOL的1,也即是usigned char的1。NO天然是BOOL的0,也即是usigned char的0。它们的值是确定的。
2.BOOL的取值不限于YES,NO。你可以取别的值。因此BOOL的范围,应该是0到255。
3.任何超过BOOL范围的值,都要先取膜,取膜后的结果才是它真正的BOOL值。
注意:
不要将BOOL值和YES直接比较。
直接与NO比较是安全的。