Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » && und || checks optimieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
11.09.2006, 12:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Ja, müsste, weil Bool-Ausdrücke vor Anwendung eines Bit-Operators implizit nach Integer konvertiert werden


ja das ist mir schon klar. Was ich meinte ist, wenn ich davon ausgehe das für nen bool im speicher nur 2 verschiede zustände gibt (nämlich 0 für false und irgend einen anderen für true) dann muss ja nur gelten das es bei true immer die gleiche zahl ungleich 0 ist damit das funzt. Wenn natürlich true z.B. einmal ne 2 ist und einmal ne 3 dann geht mir das xor natürlich vor die hunde aber so eine umsetzung habe ich noch nie gesehen... (Ich würde jedenfalls mal vermuten dein != macht auch nur ne subtraktion und guckt ob 0 oder ungleich 0 rauskommt...)
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 11.09.2006 um 12:26 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
11.09.2006, 13:22 Uhr
0xdeadbeef
Gott
(Operator)


Wenn ein bool in einen integralen Typen umgewandelt wird, garantiert der Standard, dass false zu 0 und true zu 1 wird, das ist also herzlich egal. Es sei denn, du willst auch kaputte Compiler unterstützen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 11.09.2006 um 13:22 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
11.09.2006, 13:42 Uhr
ao

(Operator)



Zitat von Windalf:
Wenn natürlich true z.B. einmal ne 2 ist und einmal ne 3...

Sowas gibts nicht in ISO-C++, da entspricht true immer 1, und alle Integer-Werte != 0 werden implizit nach true konvertiert.

In C ist es intern anders, da wird, weil es kein bool gibt, der Vergleich direkt auf dem int gemacht. Aber auch hier ist das Ergebnis des Vergleichs entweder 0 oder 1, nie was anderes.

Zitat:
(Ich würde jedenfalls mal vermuten dein != macht auch nur ne subtraktion und guckt ob 0 oder ungleich 0 rauskommt...)

Das kommt auf die Ziel-CPU an und welche Vergleichsbefehle die hat.

ao

Dieser Post wurde am 11.09.2006 um 13:44 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
12.09.2006, 01:03 Uhr
~Gast8899
Gast


jo danke leute kann ja einfach (Child[1] != Child[2]) aus dem letzten machen ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: