関数の結果を 1 回格納するのではなく、他の関数を複数回呼び出す関数をよく見かけます。
すなわち(1) :
void ExampleFunction()
{
if (TestFunction() > x || TestFunction() < y || TestFunction() == z)
{
a = TestFunction();
return;
}
b = TestFunction();
}
代わりに、そのように書きます(2) :
void ExampleFunction()
{
int test = TestFunction();
if (test > x || test < y || test == z)
{
a = test;
return;
}
b = test;
}
バージョン 2 の方が読みやすく、デバッグしやすいと思います。しかし、なぜ人々はナンバー1のようにそれをするのだろうか? 見えないものはありますか?パフォーマンスの問題? 見てみると、(2)の関数呼び出しが1回ではなく、(1)の関数呼び出しが最悪で4回なので、(1)の方が性能が悪いはずですよね?