Ein Freund von mir hat mir scherzhaft diese Frage gestellt. Es sollte eine Bemerkung vom Typ "geht ohne zu sagen" sein, aber dann habe ich eine Weile darüber nachgedacht und mit einigen cleveren "fast Lösungen" angefangen.Wann ist (x ||! X) falsch?
Erster Versuch:
Wenn C unterstützt jemals Quantencomputing kann es eine Antwort darauf sein. Ein q-Bit kann in vielen Zuständen gleichzeitig sein, also könnte es false AND true sein und diese Bedingung gibt
(BOOL)0.5
alias "Ja/nein/vielleicht-so" zurück - aber sobald Sie die Variable beobachten, wird die ganze Sache zusammenbrechen und ungültig werden nochmal.
Zweiter Versuch:
Wenn X irgendwie als zufälliger binärer Generator definiert werden könnte und man wirft ihn auf ein BOOL Sie einen Teil der Zeit falsch bekommen können. Ich bin mir nicht sicher, ob Sie dies tun können, aber in C, wenn Sie CLANG verwenden.
#define x (BOOL)!!(rand()%2)
Die Sprache, die wir diese in der Diskussion wurden ist C aber ich bin auch gespannt, ob jemand irgendwelche Lösungen in jede Sprache finden können.
Antwort: Undefiniertes Verhalten. – SLaks
Das ist die Frage, die Hamlet vor hunderten von Jahren stellte: 'bb || ! bb'. – nsilent22
@ nsilent22 Ich lachte etwas hardhard –