Hi,
gibt es einen Grund warum man in manchen Code
for ( i = 0; i < max; i++ )
und anderswo
for ( i = 0; i < max; ++i )
findet? Ist eine der Varianten sicherer/schneller/besser?
Ciao, Tobias
Am Samstag, dem 19. Oktober 2002 um 17:00:58, schrieb Tobias Koenig:
for ( i = 0; i < max; i++ ) for ( i = 0; i < max; ++i )
Ist eine der Varianten sicherer/schneller/besser?
Das ist an dieser Stelle egal.
Torsten
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Saturday 19 October 2002 17:00, Tobias Koenig wrote:
gibt es einen Grund warum man in manchen Code
for ( i = 0; i < max; i++ )
und anderswo
for ( i = 0; i < max; ++i )
findet? Ist eine der Varianten sicherer/schneller/besser?
noe:
i=5; cout <<i++<<endl; cout <<i<<endl; - --- 5 6 - --- i=5; cout <<++i<<endl; cout <<i<<endl; - --- 6 6 - ---
Konrad
- -- Never shown Star Trek episodes #10: Crewman #334: "Commander, what do they think we are?" Riker: "Aliens." Crewman #334: "...but they are..."
On Sat, 19 Oct 2002 17:00:58 +0200, Tobias Koenig wrote:
for ( i = 0; i < max; i++ ) for ( i = 0; i < max; ++i )
Ist eine der Varianten sicherer/schneller/besser?
Vermutlich erzeugt dein Compiler bei beiden Varianten den gleichen Kode. Ein Unterschied zwischen beiden Varianten existiert nur, wenn du i++ bzw. ++i evaluierst. In deinem Beispiel bist du aber gar nicht auf das Ergebnis sondern nur auf den Neneffekt aus, daß i eins größer wird. Dann ist völlig egal, was du nutzt. i=i+1 tuts genauso.
Wenn das Ergebnis des Inkrements genutzt werden soll, können Unterschiede entstehen. ++i ist platzsparender, da der alte Wert nicht gehalten werden muß. Bei i++ steht dafür das Ergebnis eher zu Verfügung, was den Programmablauf beschleunigen kann. Falls du auf einem Rechner arbeitest, bei dem einer der beiden Effekte eine Rolle spielt, wird der Compiler den erzeugten Kode schon in einer geeigneten Reihenfolge anordnen. Du kannst in C immer die Variante nutzen, die den Algorithmus besser beschreibt, also besser verständlich ist.
Reinhard
lug-dd@mailman.schlittermann.de