Объективные логические значения c

Мне было интересно, какая разница между следующими значениями в цели c:

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

в среде IDE они окрашены по-разному, существуют ли разные ситуации, когда вы использовали бы разные логические значения?

Спасибо


person Dave C    schedule 10.08.2010    source источник
comment
Разве YES и NO не должны всегда быть прописными в Objective-C?   -  person BoltClock    schedule 10.08.2010


Ответы (1)


Эти значения окрашены по-разному, поскольку они используются в двух разных типах - BOOL и bool и представляют собой разные языковые конструкции.

BOOL - это переопределение макроса signed char, что означает, что он может иметь более двух значений, и, хотя отображение равно _5 _ / _ 6_ == 0, _7 _ / _ 8_ == 1, вы должны быть осторожны при написании логических выражений и обращении любое ненулевое значение считается истиной. Значения, которые могут быть присвоены BOOL, определены как макросы и окрашены соответствующим образом.

Между тем, bool, с другой стороны, является истинным логическим типом и может иметь только два значения - true и false. Его значения являются конструкциями на родном языке и окрашены как таковые.

Вот некоторые другие обсуждения этой темы в SO:
Есть ли разница между YES / NO, TRUE / FALSE и true / false в objective-c?
Objective-C: BOOL vs bool

person Franci Penov    schedule 10.08.2010