十三郎的IT生活

 

iOS的 BOOL bool Boolean boolean_t区别

@import url(http://www.cnitblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

1.
BOOL typedef signed char BOOL;

YES #define YES (BOOL)1
NO #define NO  (BOOL)0

BOOL 使用了一个8 位(一个字节)的整数进行表示,8 位全0 就是NO。
2^8 = 512
 8960 用二进制表示是大于8 位的,也就是说高位无效,
只保留8960 的低八位,8960 的低八位恰好全都是0,因此8960 就是NO 了
因此在Objective-C中一定要注意这个问题,非零值未必是BOOL 的YES,但是0 一定是NO。


2.
bool    c语言 int
Defined in stdbool.h, ISO C/C++ standard type
true     非0
false   0


3.
Boolean unsigned char type
Mac OS historic type, sizeof(Boolean)==1


4.
boolean_t  int type

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

posted on 2014-03-12 21:04 十三郎 阅读(1242) 评论(0)  编辑 收藏 引用 所属分类: 基础知识iPhone

只有注册用户登录后才能发表评论。

导航

常用链接

留言簿(5)

随笔分类

文章分类

积分与排名