Objective C 中的BOOL, bool, Boolean理解,objectivebool
一、
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 |