學(xué)iOS開發(fā)算起來應(yīng)該是一年多的,但是在平常使用布爾值的時(shí)候總是隨便一用,只知道它們就只有兩種值1或者0而已,并沒有太多的注意。但是今天特地去官方文檔翻了一下它們各自的定義,才覺得原來還是略有不同的。特別是Boolean中的FALSE和TRUE居然是用枚舉來定義的。真是讓我大開眼界!在此跟大家分享一下。
BOOL
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
bool
C99標(biāo)準(zhǔn)定義了一個(gè)新的關(guān)鍵字_Bool,提供了布爾類型
#define bool _Bool
#define true 1
#define false 0
Boolean
typedef unsigned char Boolean;
enum DYLD_BOOL { FALSE, TRUE };
總結(jié)
下面的表格更能表現(xiàn)上面三種布爾類型的真值類型和數(shù)值:
| 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 |