2010-08-10 63 views
11

我想知道有什么不同的目标C以下值之间:目标C布尔值

TRUE(uppercase) - true(lowercase) - yes 
FALSE(uppercase) - false(lowercase) - no 

它们的颜色不同的IDE,还有不同的情况下,您会使用不同的布尔值?

感谢

+2

不要'YES'和'NO'不得不始终在Objective-C是大写吗? – BoltClock 2010-08-10 18:52:01

回答

15

这些值的颜色不同,因为它们是两种不同类型的使用 - BOOLbool和不同的语言结构。

BOOLsigned char宏重新定义,这意味着它可以具有多于两个的值,并且在映射是NO/FALSE == 0,YES/TRUE == 1,必须写入时要小心布尔表达式并将任何非零值视为true。可以分配给BOOL的值被定义为宏并相应地着色。

另一方面,bool是一个真正的布尔类型,可以只有两个值 - truefalse。它的值是本地语言结构,并且被着色。

这里有一些这个话题的讨论,SO:
Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?
Objective-C : BOOL vs bool