PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleines C/C++ to Delphi/Pascal Problem


Markus89
2008-05-04, 18:09:01
Hallo,

ich hab gerade ein Problem beim übesetzen von C/C++ Code nach Delphi/Pascal.

Könnt ihr mir hierbei gerade mal sagen, wie sich "numOut" ändert, und welcher Index jeweils benutzt wird?


int numOut = 0;
if (distance0 <= 0.0f) vOut[numOut++] = vIn[0];
if (distance1 <= 0.0f) vOut[numOut++] = vIn[1];


Außerdem: Was ist der unterschied hier:

int i = 0;
i++;
++i;


Und hier:

for (int i = 0; i < 2; ++i)
//bzw.
for (int i = 0; i < 2; i++)
?

Wäre nett, wenn ihr mir das gerade unkompliziert sagen könntet =)

Markus

Xmas
2008-05-04, 18:24:28
Einfach gesagt: i++ liefert den Wert von i zurück und inkrementiert danach. ++i inkrementiert zuerst und liefert dann den bereits inkrementierten Wert zurück.

Dies wäre äquivalent:
int numOut = 0;
if (distance0 <= 0.0f) { vOut[numOut] = vIn[0]; numOut = numOut + 1; }
if (distance1 <= 0.0f) { vOut[numOut] = vIn[1]; numOut = numOut + 1; }

In deinen anderen beiden Beispielen gibt es keinen praktischen Unterschied da der Rückgabewert gar nicht verwendet wird. Das gilt jedoch nur für die eingebauten Typen von C++, bei eigenen Typen mit überladenen Operatoren ist ++i normalerweise effizienter.

Markus89
2008-05-04, 18:27:56
Danke für die schnelle antwort :D