boolean_t t; Boolean tt; BOOL ttt; bool tttt;
这四种布尔类型有什么区别?
我看很多框架里的方法都用 BOOL 为什么?
boolean_t t1 = 1;//int type
Boolean t2 = 1; //unsigned char type
BOOL t3 = 4;//YES or NO
bool t4 = 1;//true or false
NSAssert(t1, @"boolean_t t1 is NO");//通过测试
NSAssert(t2, @"boolean_t t2 is NO");//通过测试
NSAssert(t3, @"boolean_t t3 is NO");//通过测试
NSAssert(t4, @"boolean_t t4 is NO");//通过测试
补充一下
typedef signed char BOOL;
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C"
// even if -funsigned-char is used.
- define OBJC_BOOL_DEFINED
- define YES (BOOL)1
- define NO (BOOL)0
bool 是int
BOOL 是char
bool b1 当b1>0 就=YES
BOOL b2 当b2=1 才=YES
所以框架都用BOOL
Boolean mac os上有历史意义的类型
Boolean types and values Boolean Mac OS historic type, sizeof(Boolean)==1 bool Defined in stdbool.h, ISO C/C++ standard type false Now defined in stdbool.h true Now defined in stdbool.h
boolean_t i386
/* * File: boolean.h * * Boolean type, for I386. */ #ifndef _MACH_I386_BOOLEAN_H_ #define _MACH_I386_BOOLEAN_H_ #if defined(__x86_64__) && !defined(KERNEL) typedef unsigned int boolean_t; #else typedef int boolean_t; #endif #endif /* _MACH_I386_BOOLEAN_H_ */