學(xué)iOS開發(fā)算起來應(yīng)該是一年多的得问,但是在平常使用布爾值的時候總是隨便一用砍聊,只知道它們就只有兩種值1或者0而已,并沒有太多的注意桨嫁。但是今天特地去官方文檔翻了一下它們各自的定義植兰,才覺得原來還是略有不同的。特別是Boolean
中的FALSE和TRUE居然是用枚舉
來定義的璃吧。真是讓我大開眼界楣导!在此跟大家分享一下。
BOOL
typedef signed char BOOL;
#define YES (BOOL)1
#define NO (BOOL)0
bool
C99標準定義了一個新的關(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 |