Llamadas de función vs. variables locales
A menudo veo funciones en las que otras funciones se llaman varias veces en lugar de almacenar una vez el resultado de la función.
es decir(1):
void ExampleFunction()
{
if (TestFunction() > x || TestFunction() < y || TestFunction() == z)
{
a = TestFunction();
return;
}
b = TestFunction();
}
En su lugar, lo escribiría de esa manera,(2):
void ExampleFunction()
{
int test = TestFunction();
if (test > x || test < y || test == z)
{
a = test;
return;
}
b = test;
}
Creo que la versión 2 es mucho mejor para leer y mejor para depurar. Pero me pregunto por qué la gente lo hace como en el número 1? ¿Hay algo que no vea? ¿Problema de rendimiento? Cuando lo miro, veo en el peor de los casos 4 llamadas de función en el número (1) en lugar de 1 función en el número (2), por lo que el rendimiento debería ser peor en el número (1), ¿no es así?