Objective C 中的BOOL, bool, Boolean理解

一、 
1、类型不同 
BOOL为int型 
bool为布尔型 
2、长度不同 
bool只有一个字节 
BOOL长度视实际环境来定,一般可认为是4个字节 
3、取值不同 
bool取值false和true,是0和1的区别 
BOOL取值FALSE和TRUE,是0和非0的区别 
二: 
bool是标准C++数据类型,可取值true和false。单独占一个字节, 
如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。 

BOOL是微软定义的typedef int BOOL。与bool不同,它是一个三值逻辑, 
TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。 
Win32 API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage(). 
三: 
大BOOL和小bool之间的区别: 
1、类型不同 
BOOL为int型 
bool为布尔型 
2、长度不同 
bool只有一个字节 
BOOL长度视实际环境来定,一般可认为是4个字节 
3、取值不同 
bool取值false和true,是0和1的区别 
BOOL取值FALSE和TRUE,是0和非0的区别 
4、例子 
bool x=3;  //告警 
bool x=1;  //正确 
BOOL x=3;  //正确 
BOOL x=3.3;  //告警 
注:windows为了兼容问题定义的基础变量。 
typedef unsigned long        DWORD; 
typedef int                  BOOL; 
typedef unsigned char        BYTE; 
typedef unsigned short      WORD; 
typedef float                FLOAT; 
typedef FLOAT                *PFLOAT; 
typedef BOOL near            *PBOOL; 
typedef BOOL far            *LPBOOL; 
typedef BYTE near            *PBYTE; 
typedef BYTE far            *LPBYTE; 
typedef int near            *PINT; 
typedef int far              *LPINT;

 

 

Name Typedef Header True Value False Value
BOOL signed char objc.h YES NO
bool _Bool (int) stdbool.h true false
Boolean unsigned char MacTypes.h TRUE FALSE
NSNumber __NSCFBoolean Foundation.h @(YES) @(NO)
CFBooleanRef struct CoreFoundation.h

原文链接: https://www.cnblogs.com/bigshow1949/p/7047430.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Objective C 中的BOOL, bool, Boolean理解

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/255644

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 上午9:20
下一篇 2023年2月14日 上午9:22

相关推荐