Stilfrage: Logisches xor

22/10/2016 - 11:02 von Thomas Koenig | Report spam
C kein logisches xor, sondern nur ein bitweises. && und ||
existieren, aber leider kein àquivalentes ^^.

Daher habe ich gelegentlich schon Code geschrieben wie

if ((p1 == NULL) ^ (p2 == NULL))
return;

allerdings mit einem Kommentar drüber, warum. Finde ich nicht
schön, aber immer noch sauberer als

if ((p1 == NULL) + (p2 == NULL) == 1)
return;

Wie drückt ihr in eurem Code ein logisches xor aus?
 

Lesen sie die antworten

#1 Claus Reibenstein
22/10/2016 - 13:22 | Warnen spam
Thomas Koenig schrieb am 22.10.2016 um 11:02:

C kein logisches xor, sondern nur ein bitweises.



Dieser Satz kein Verb ;-)

Daher habe ich gelegentlich schon Code geschrieben wie

if ((p1 == NULL) ^ (p2 == NULL))



Kann man machen. Funktioniert auch garantiert.

Wie drückt ihr in eurem Code ein logisches xor aus?



Um bei Deinem Beispiel zu bleiben:

if ((p1 == NULL) != (p2 == NULL)) ...

Oder in diesem Fall noch kürzer:

if (!p1 != !p2) ...

Gruß
Claus

Ähnliche fragen