Rekursion -- Performance-Frage (Compiler-Optimierung)
-
Hallo,
Ich habe eine Methode, die rekursiv eine weitere Methode aufruft, die einen
Int zurück gibt. Diesen Int-Wert bekommt sie aber wieder von einer anderen Mathode.also im code sieht das so aus:
//in main int ret = Function1(); //in Function1 ... return Function2(int); //in Function2 ... return Function3(int);So weit so gut.
Mich würde jetzt aber mal interessieren, wie der Compiler das handhabt.
Eigentlich könnte er ja direkt den Rückgabewert der Funktion 3 ins main
zurückgeben, dann würde er sich die Funktionsrücksprünge sparen.Hat einer ne Ahnung, ob das so optimiert ist?
Würd mich einfach mal nur so interessieren

Grüssle,
Stefan
-
wenn du dem compiler sagst, dass er optimieren soll, dann wird er funktion 1 und 2 rausoptimieren(auch wenn das hier kein selbstaufruf, also keine rekursion ist)
-
ja, stimmt.. is gar keine Rekursion
wo war ich nur in Gedanken 
thx für die Antwort!
und wie kann ich gcc das sagen, daß er das machen soll?

-
benutze einfach das Schlüsselwort "inline" für die Funktionen... oder stell die Optimierungen beim Compiler an (/O oder so ähnlich).