steckl: C++: Abarbeitungsreihenfolge von Übergabeparametern

Beitrag lesen

Hi,

...

Der Unterschied kommt daher zustande, dass
bei meiner g++ - Installation Funktionsparameter
in der Reihenfolge von rechts nach links
ausgewertet werden. Daher wird in summe1 immer
erst der Zeiger f übergeben, bevor der
Ausdruck *f++ ausgewertet wird.

Ein sehr guter Beitrag, herzlichen Dank nochmal!

Ja, das war mir auch neu, dass es auch Compiler gibt, die die Argumente andersrum abarbeiten. Ich habs bis jetzt immer nur von rechts nach links gesehen. Außerdem verwende ich ja auch den g++ (Version 4.2).
Finde ich ziemlich erstaunlich.
Wäre interessant, ob dieses Verhalten wirklich so definiert ist, oder ob sich da ein Compiler einfach nicht an die Standards hält.

Dann sollte man wohl zugunsten der Portabilität aber weder Deine noch meine Variante wählen, sondern einfach kurz vorher eine neue Variable schreiben (wobei das bei größeren Inhalten zulasten der Performance geht, natürlich).

Oder einfach f+1 statt ++f verwenden, dann spart man sich auch die zusätzliche Variable.

mfG,
steckl