複数の機能をもつ関数

例えば、次のように計算と表示が分かれていない関数がある。

int calc(uint16 a, uint8 view)
{
    int = foo + a;
    if (view != 0) {      //引数viewで表示・非表示を制御
        display(hoge);
    }
    return hoge;
}

int main(void)
{
    calc(10, 0);      //計算のみで表示しない
    calc(10, 1);      //計算した上で表示する
}

本来計算のための関数 calc() に表示までさせると関数の役割が分かりにくくなる。calc() は計算だけをさせ、display() を呼ぶか呼ばないかは呼び出し元で決めるべきだろう。

int calc(uint16 a)
{
    return foo + a;
}

int main(void)
{
    calc(10);               //計算のみで表示しない
    display(calc(10));      //計算した上で表示する
}