Logische Gleichheit in C

8

[Es scheint merkwürdig, dass das nicht existiert, also entschuldige dich im Voraus, wenn es ein Duplikat ist]

Ich möchte auf logische Gleichheit in C testen. Mit anderen Worten, ich möchte wissen, ob zwei Werte gleich wären, wenn beide auf die mit logischen Ausdrücken verbundene Weise konvertiert würden.

In C99 denke ich das

%Vor%

gibt was ich will. Ist das korrekt? Wie schreibt man das im traditionellen C?     

andrew cooke 08.06.2012, 16:35
quelle

4 Antworten

10

Normalerweise sehen Sie Folgendes:

%Vor%

Oder

%Vor%

Seit !!a ergibt 1, wenn a nicht Null ist und sonst 0.

Hoffe, das hilft!

    
templatetypedef 08.06.2012, 16:37
quelle
6

In C ist Null falsch. Wenn Sie einen Wert in sein boolesches Äquivalent umwandeln möchten, besteht der Standardweg (nun, abgesehen davon, dass es fast nie nötig ist) darin, einen Ausdruck mit !! zu versehen, wie in !!a . Im Falle deines Ausdrucks, %Code% kann zu vereinfacht werden !!a == !!b

    
Yusuf X 08.06.2012 16:40
quelle
2

In der Zeit vor C99 C ist der traditionelle, idiomatische Weg, "zu bowlen" mit !! .

    
R.. 08.06.2012 16:43
quelle
1

Es gibt kein (bool) in traditionellem c. Wahr / Falsch wird mit int s behandelt. Sie können nach boolescher Gleichheit mit

suchen %Vor%     
Hans Z 08.06.2012 16:39
quelle

Tags und Links