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
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 |
bool b; *((char*)&b) = 2; cout << (b==true ? "Schön wärs" : "Geht leider nicht") << endl; |
C-/C++-Quelltext |
|
1 2 3 4 |
if(2 == true) std::cout << "das hier wäre eigentlich richtig" << std::endl; else std::cout << "aber das hier wird ausgegeben" << std::endl; |
ich finde es sieht besser aus, wenn man einfach den vergleich mit true weglässtZitat von »"Helmut"«
Hi,
okay, hier ein etwas deutlicheres Beispiel in reinem C++:
C-/C++-Quelltext
1 2 3 4 if(2 == true) std::cout << "das hier wäre eigentlich richtig" << std::endl; else std::cout << "aber das hier wird ausgegeben" << std::endl;
Der Ms Compiler wird in dem Code zurecht eine Warnung ausgeben, aber das hat nichts mit der Sprache zu tun (leider) und der Compiler kann auch nicht in allen Situationen warnen.
Mein Punkt ist ja auch nur, dass man nicht mit true vergleichen sollte. Das machen ja auch sowieso eigentlich nur Anfänger und es sieht auch besser aus, finde ich, wenn man es nicht macht.
Ciao
Zitat von »"Genion"«
ich finde es sieht besser aus, wenn man einfach den vergleich mit true weglässt
ja.. nur wie oft ist ein bool >1?Zitat von »"Jonathan_Klein"«
Zitat von »"Genion"«
ich finde es sieht besser aus, wenn man einfach den vergleich mit true weglässt
Aber genau das sagt Helmut doch auch oO. Außerdem erwähnt er noch, warum es ohne ==true nicht nur schöner sondern auch eher dem erwarteten Verhalten entspricht.
Nur wäre es mir das nicht wert, weil 0==var sogar mit Abständen viel zu hässlich aussehen würde. Teilweise kriegt man eine Warnung, und so ein Fehler ist auch nicht soo schwer zu finden. Mit einem Debugger findet man relativ schnell heraus, wo eine Variable ungewollt geändert würde. Und wie gesagt, passiert einem das sowieso nie (ich denke, meistens schaut man sich noch kurz an, was man geschrieben hat)...Zitat von »"Jonathan_Klein"«
Es ist das selbe, weshalb man 0==var und nicht var==0 schreiben sollte, weil wenn man ein = vergißt, kommt bei der ersten Version ein Kompilerfehler. Klar, normalerweise passiert das nie, aber wenn doch, ist der Fehler manchmal schwer zu finden.
Werbeanzeige