Funktionsaufrufe vs. lokale Variablen

Ich sehe oft Funktionen, bei denen andere Funktionen mehrmals aufgerufen werden, anstatt das Ergebnis der Funktion einmal zu speichern.

d.h.(1):

void ExampleFunction()
{ 
    if (TestFunction() > x || TestFunction() < y || TestFunction() == z)
    {
        a = TestFunction();
        return; 
    }
    b = TestFunction();
}

Stattdessen würde ich es so schreiben,(2):

void ExampleFunction()
{
    int test = TestFunction();
    if (test > x || test < y || test == z)
    {
        a = test;
        return;
    }
    b = test;
}

Ich denke, Version 2 ist viel besser zu lesen und besser zu debuggen. Aber ich frage mich, warum die Leute es so machen wie in Nummer 1? Gibt es etwas, das ich nicht sehe? Leistungsproblem? Wenn ich es mir anschaue, sehe ich im schlimmsten Fall 4 Funktionsaufrufe in Nummer (1) anstelle von 1 Funktionsaufruf in Nummer (2), also sollte die Leistung in Nummer (1) schlechter sein, oder?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage