Objective-c里各种布尔类型什么区别

boolean_t t;

Boolean tt;

BOOL ttt;

bool tttt;

这四种布尔类型有什么区别?

我看很多框架里的方法都用 BOOL 为什么?

回答:

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_ */

回答:

补充一下

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

回答:

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");//通过测试

屏幕快照-2013-01-09-10.48.40-AM.png

以上是 Objective-c里各种布尔类型什么区别 的全部内容, 来源链接: utcz.com/p/187751.html

回到顶部