BOOL/bool/Boolean的區別

學iOS開發算起來應該是一年多的,但是在平常使用布爾值的時候總是隨便一用,只知道它們就只有兩種值1或者0而已,並沒有太多的注意。但是今天特地去官方文檔翻了一下它們各自的定義,才覺得原來還是略有不同的。特別是Boolean中的FALSE和TRUE居然是用枚舉來定義的。真是讓我大開眼界!在此跟大家分享一下。

BOOL

typedef signed char BOOL;
#define YES (BOOL)1
#define NO  (BOOL)0

bool

C99標準定義了一個新的關鍵字_Bool,提供了布爾類型
#define bool _Bool
#define true 1  
#define false 0

Boolean

typedef unsigned char Boolean;
enum DYLD_BOOL { FALSE, TRUE };

總結

下面的表格更能表現上面三種布爾類型的真值類型和數值:

Name Typedef Header True Value False Value
BOOL signed char objc.h YES NO
bool _Bool stdbool.h true false
Boolean unsigned char MacTypes.h TRUE FALSE
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章