Define von TRUE und FALSE

Post Reply
Message
Author
Da-Beej

Define von TRUE und FALSE

#1 Post by Da-Beej »

Hallo Forum,

bis anhin war ich es mir gewohnt, folgendes in einem Programm zu definieren:

Code: Select all

#define TRUE 1
#define FALSE 0
Vorhin ist mir diese Definition begegnet

Code: Select all

#define false (0!=0)
#define true  (0==0)
Was ist der Vorteil/Grund?

Vielen Dank auch!

Da-Beej

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Die untere Definition funktioniert auch, wenn FALSE auf der betreffenden Maschine als 664576 und TRUE als 24542 definiert ist.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#3 Post by hjb »

Hi!

Der C-Standard schreibt vor, dass 0 als False interpretiert wird, alles andere als True. Die Definition ist daher Bullshit.

Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Ich hab' zwar im Standard http://www.open-std.org/JTC1/SC22/WG14/ ... /n1124.pdf
nirgendwo eine konkrete Definition von True und False gefunden, allerdings wird dort an vielen vielen Stellen einfach 0 als False angenommen, und 1 bzw. nicht 0 als True. Insofern hat hjb recht, mit dem jetzigen C-Standard ist die Definition überflüssig.

Statt es selbst zu definieren, sollte man allerdings lieber <stdbool.h> einbinden.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#5 Post by hjb »

Hi,

in C gibt es kein True und False. Konstrukte wie if, while und Vergleiche arbeiten mit int, wobei halt 0 False entspricht und alles andere True. War auch schon immer so.

Ist stdbool.h so Standard, wie der Name suggeriert? War mir bisher nicht bekannt.

Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#6 Post by Janka »

Wird ebenfalls im verlinkten Dokument erwähnt und empfohlen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply