Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Define von TRUE und FALSE

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Da-Beej
Gast





BeitragVerfasst am: 14. Mai 2007 14:08   Titel: Define von TRUE und FALSE

Hallo Forum,

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

#define TRUE 1
#define FALSE 0


Vorhin ist mir diese Definition begegnet
Code:

#define false (0!=0)
#define true  (0==0)


Was ist der Vorteil/Grund?

Vielen Dank auch!

Da-Beej
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 14. Mai 2007 19:19   Titel:

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.
 
Benutzer-Profile anzeigen Private Nachricht senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 15. Mai 2007 11:06   Titel:

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?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 15. Mai 2007 11:47   Titel:

Ich hab' zwar im Standard http://www.open-std.org/JTC1/SC22/WG14/www/docs/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.
 
Benutzer-Profile anzeigen Private Nachricht senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 16. Mai 2007 10:28   Titel:

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?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 16. Mai 2007 18:01   Titel:

Wird ebenfalls im verlinkten Dokument erwähnt und empfohlen.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy