解释一个类型,最好的办法就是看看它的定义:
#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比较是安全的。
本文详细解析了BOOL类型的定义及其取值范围,在VxWorks系统中BOOL被定义为int类型,在其他系统中则为unsigned char类型。文章强调了在比较BOOL值时需要注意的细节。

被折叠的 条评论
为什么被折叠?



