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

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

11

10.11.2010, 08:26

Nein, mit dem logischen or (||) funktioniert es auch nicht. Der Compiler betrachtet nicht den kompletten ausdruck, sondern nur die klammer für sich alleine und wertet erstmal diese aus. Das ist überall so, auch bei mathematischen ausdrücken. Sobald er also beim Vergleichen ankommt, weiß er nicht mehr, dass da mal 2 zahlen standen, weil er es schon zu einer ausgewertet hat.

Mastermind

unregistriert

12

10.11.2010, 11:08

Bin zu faul es auszuprobieren, aber eigentlich würde ich eine Warnung des compilers erwarten wenn bool zu int gecastet wird. Es ist ein "feature" was wohl nur wegen der C Kompatibilität besteht und es ist wahrscheinlich selten das was man will.

Soviel ich weiß sieht der Standard auch nur vor das 0 false ist und irgendwas ungleich 0 true. Man kann sich meines Wissens also nicht darauf verlassen dass (int)true 1 ergibt. Kenner des Standards mögen mich korrigieren.

jokester

Treue Seele

Beiträge: 125

Wohnort: Mainz

  • Private Nachricht senden

13

10.11.2010, 15:56


Soviel ich weiß sieht der Standard auch nur vor das 0 false ist und irgendwas ungleich 0 true. Man kann sich meines Wissens also nicht darauf verlassen dass (int)true 1 ergibt. Kenner des Standards mögen mich korrigieren.

Gerne. :P

Zitat von »4.5.6«

An rvalue of type bool can be converted to an rvalue of type int, with false becoming zero and true becoming one.

Oder

Zitat von »4.7.4«

... If the source type is bool, the value false is converted to zero and the value true is converted to one.
"There is a theory which states that if ever anyone discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory which states that this has already happened" -- Douglas Adams.

14

10.11.2010, 17:02

hmmm ... kann ja auch gar nicht gehen, wenn ichs mir so recht überlege ^^
werds jetzt in 2 klammern und ner veroderung machen

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

15

10.11.2010, 17:34

Aequivalent mag da was sein oder auch nicht, aber zulaessig ist jedenfalls jeder Ausdruck der zu einem true oder false ausgewertet werden kann.

Werbeanzeige