Präfix vs. Postfix in Schleifen
-
Hi,
mir wurde gesagt, daß man in for-Schleifen den Präfix Operator zum Inkrementieren benutzen soll. Ich habe mir das im Debugger angeschaut und es scheint keinen Unterschied zu geben. Wieso sollte man denn eher sowas:
for(int i = 0; i < n; ++i) { }Anstelle von sowas benutzen:
for(int i = 0; i < n; i++) { }Oder ist das egal?
danke
-
++i. Bei i++ wird ein loakes int erzeugt, bei ++i nicht.
-
Das ist wahrscheinlich wieder so ein Ding, was die Performance deines Programms unendlich steigert.
Nicht mit dem debugger anschauen, sondern den assembler code.
-
Bei int kann der Compiler es wegoptimieren, aber bei Objekten mit einem überladenen op++ kann der Compiler das nicht, da er nicht weiß was dein op++ macht.
-
Danke! Es hörte sich nur so an als wäre es anders falsch. Naja, habe das jetzt sowieso schon auf die schnelle Art gemacht und kann dann dabei bleiben.

Kann ich mir in Visual Studio eigentlich einen bestimmten Bereich beim Debuggen auch als ASM Code darstellen lassen? Ab und an springt er IIRC bei DLLs ohne Debuginformationen glaube ich in diesen - geht es auch für einen beliebigen markierten Bereich
-
kein interessenshalber.. ich kenn den unterscheide zwischen postfix und präfix:
was meint ihr mit "Es wird ein lokales int erzeugt beim anderen nich?
welche perfoance unterschiede entstehen denn? bei den untschiedlichen schleife?
-
Wenn du ++i schreibst, kriegst du eine Referenz auf i zurück. Schreibst du i++ kriegst du eine Kopie von i zurück. Wie gesagt, bei ints kratzt das noch nicht wirklich, aber bei benutzerdefinierten Strukturen kann es evtl. etwas ausmachen.
-
man lernt nie aus;)