Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » If-Abfragen geschwindigkeit

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 <
000
31.03.2005, 19:31 Uhr
~Paulaner
Gast


Ich hab mal ne Frage:
Was ist schneller?

Code:
if(a && b && c)


oder

Code:
if(a)
  if(b)
    if(c)

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.03.2005, 19:44 Uhr
Pablo
Supertux
(Operator)


ich gluabe, dass if(a && b && c) schneller ist, weil nur ein einziger Vergleich getan werden muss, während bei


C++:
if(a)
  if(b)
    if(c)



höchstens 3 notwenig sind. Die Frage ist eher, wie lange braucht der PC bei einem Vergleich, und da würde ich sagen, dass es nichts ausmacht, die eine oder andere zu nehmen.

Ich würde die erste Variante aus Lesbarkeitsgründen nehmen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.03.2005, 20:08 Uhr
ao

(Operator)


Genaugenommen müssten beide Versionen identisch sein. Wegen der Abkürzungsregeln muss der Compiler im ersten Fall die Auswertung abbrechen, sobald das Ergebnis feststeht (d.h. wenn a schon == 0 ist, werden b und c gar nicht mehr ausgewertet). Es muss also nach jedem Teilausdruck verglichen werden, und damit müssen beide Quellcodes zum gleichen Kompilat führen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.03.2005, 20:42 Uhr
(un)wissender
Niveauwart


@Pablo
Die Anzahl der Vergleiche ist identisch, wie ao schon sagte.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.03.2005, 21:02 Uhr
Pablo
Supertux
(Operator)


Oh Mann, bin ich heute blöd, a && b && c sind auch 3 Vergleiche.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: