Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

01.01.2009, 13:01

Zitat von »"raXor"«

was ist 1 oder 0? Sind das etwa keine boolschen Werte?
0 = false
<1 = true

0 und 1 sind Zahlen, wenn mich mein Mathelehrer nicht belogen hat. In Programmiersprachen, die etwas frischer als C++ sind, merkt man das auch, denn sowas wie

Quellcode

1
2
int x = ...; 
if(x) { ... }
geht da nicht.

Zitat von »"franzelot"«

es gibt keine einzig korrekte lösung, solange man dasselbe erreicht

Mit korrekt meine ich, dass hier mit einer arithmetischen Operation gearbeitet, die eine Zahl als Ergebnis hat. Wenn du jetzt meinst, dass man z.B. & 1 statt % 2 nehmen kann, meinetwegen. Aber Vergleiche von Zahlen mit true/false sind nicht richtig. Egal ob es funktioniert.
Howdy!

12

01.01.2009, 13:24

Quellcode

1
2
int x = ...; 
if(x) { ... }
geht da nicht.

was von der Hardware und der verwendung her oft blödsinn ist.
warum statt if(x), dass z.B. den verwendeten Speicher durch einen vergleich von x mit sich selbst und anschließender überprüfung des Zero-Flags reduzieren kann, zwingend if(x!=0) schreiben, was dann den vergleich von x mit einer Konstanten=0 produziert - außer der Compiler erkennt so ein Konstrukt und setzt es wie if(x) um, was dann aber einen uneindeutigen Quellcode provoziert.
und tatsächlich ist if(x) in den meisten fällen, in denen es verwendet wird, auch logisch sinnvoll, in dem sinne das true auch valid bedeutet. zum beispiel ist ein Zeiger als valid anzunehmen, wenn er ungleich NULL, also im sinne einer Bedingung true ist.

//EDIT: zum thema vergleiche von Zahlen mit true/false: da geb ich dir im allgemeinen recht, den true und false als integrierte Konstantern sind afaik bools;
da ist es eben ein unterschied zwischen dem bool-Wert true/false und true/false im sinnne des eerfüllens einer bedingung ;)