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