Die "oder" und "und" Wörter im
MSDN Text sind eine Wortart (Konjunktion) und haben nicht unbedingt dieselbe logische Aussagekraft, wie die Bitoperatoren in Delphi.
Zumal hier eine entscheidende Unterscheidung in Delphi nicht vorhanden ist. In C/C++ und anderen Sprachen unterscheidet man zwichen bitweisen und logischen Operatoren. Die Entsprechung für "or" aus Delphi wäre dann im Kontext einer Abfrage üblicherweise (logischer Operator):
Code:
if (ausdruck || ausdruck2) { ... }
... wohingegen beim Kombinieren von Bits der bitweise Operator benutzt würde (ja, es geht auch kürzer, aber hier geht's um Verständnis):
Code:
ausdruck = ausdruck | ausdruck2;
Man kann zwar prinzipiell auch den bitweisen Operator für Abfragen mißbrauchen:
Code:
if (ausdruck | ausdruck2) { ... }
... darf sich dann aber je nach Kontext nicht über geändertes Laufzeitverhalten oder gar geänderte Logik wundern. Denn bei:
Code:
if (foo || bar || baz) ...
... werden die Checks schon abgebrochen wenn "foo" oder "foo || bar" wahr sind, wohingegen bei:
... alle Werte kombiniert werden und dann geguckt wird, ob sie Null oder nicht Null sind.