Ist der Vergleich ein BOOLESCHER Wert, gegen die JA gefährlich?

Fand ich einen Kommentar heute in einer Quellcode-Datei:

// - no longer compare BOOL against YES (dangerous!)

Ist der Vergleich BOOL gegen YES in Objective-C wirklich so gefährlich? Und warum ist das so?

Kann der Wert von YES ändern während der Laufzeit? Vielleicht NO ist immer 0 aber YES werden kann 1, 2 oder 3 - je nach Laufzeit-compiler, deine verlinkten frameworks?

  • Siehe diese Frage: stackoverflow.com/questions/690903/...
  • BTW, im 64-bit-iOS-Ziele BOOL jetzt übersetzt bool, das ist ein richtiger Typ "boolean". Aber historisch gesehen, war es nur eine signed char, und unter Berücksichtigung aller Vorsichtsmaßnahmen, die wir sehen, werden unten diskutiert.
InformationsquelleAutor | 2009-12-20
Schreibe einen Kommentar