主要区别:
bool :
C++里面定义的,值只有0和1.
_Bool
C99定义的,值只有0和1,如果是被头文件stdbool.h包含,bool就定义为_Bool
BOOL
OC中objc.h中定义,32位是无符号字符型,值除了包括YES(0x01),NO(0x00),还有-127~128的其他数.即三值逻辑.
64位就相当于bool,值为0和1.
Boolean
C语言在CFBase.h中定义,是无符号字符型
值除了包括TRUE,FALSE,还有任意在-127到128范围内的数,即三值逻辑.
boolean_t
32位是整型,64位是无符号整型
所以,不要尝试着将BOOL转换成bool,也不要进行条件判断if(BOOL变量 == YES)等操作.