2010-08-10 17 views
11

zastanawiałem się, jaka jest różnica była między następującymi wartościami obiektywnych c:Obiektywne wartości logiczne c

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

są różnie zabarwione w IDE, istnieją różne sytuacje, kiedy należy użyć różnych wartości logicznych?

Dzięki

+2

Nie '' NO' YES' i muszą być zawsze wielkimi literami w Objective-C? – BoltClock

Odpowiedz

15

Wartości te są różnie zabarwione, jak są one wykorzystywane w dwóch różnych typów - BOOL i bool i różne konstrukcje językowe.

BOOL jest makro re-definicja signed char, co oznacza, że ​​może mieć więcej niż dwie wartości, a jednocześnie odwzorowanie jest NO/FALSE == 0, YES/TRUE == 1, trzeba być ostrożnym podczas pisania Wyrażenia boolowskie i traktują każdą niezerową wartość jako prawdziwą. Wartości, które można przypisać do BOOL, są zdefiniowane jako makra i są odpowiednio oznaczone.

Tymczasem, bool z drugiej strony jest prawdziwym typem boolowskim i może mieć tylko dwie wartości - true i false. Jego wartości są rodzimymi konstruktami językowymi i są barwione jako takie.

Oto niektóre inne tak dyskusje w tym temacie:
Is there a difference between YES/NO,TRUE/FALSE and true/false in objective-c?
Objective-C : BOOL vs bool