15

オープン ソース コード (Linux C コード) を読むと、 ですべての操作を実行する代わりに、多くの関数が使用されていることがわかりますmain()。次に例を示します。

int main(void ){
    function1();
    return 0;
}

void function() {
    // do something
    function2();
}

void function2(){
    function3();
    //do something
    function4();
}

void function3(){
    //do something
}
void function4(){
    //do something
}

できるだけ関数を使用することの長所と短所を教えてください。

  • 機能(または新しい操作)の追加/削除が簡単
  • コードの可読性
  • 関数内の変数が破棄されるため、ソース効率(?)(動的割り当てが行われない限り)
  • ネストされた関数はコード フローを遅くしますか?
4

6 に答える 6

4

関数を使用するこのプラクティスは、記述するコードの量が増えるにつれて非常に重要になります。関数に分離するこのプラクティスにより、コードの衛生状態が改善され、読みやすくなります。私はどこかで、コードがあなただけが読める場合、コードのポイントがないことを読みました(状況によっては、それで問題ないと思います)。コードを存続させたい場合は、保守可能である必要があり、保守容易性は、可能な限り単純な意味で関数を作成することによって作成されるものです。また、コードベースが 10 万行をはるかに超える場所を想像してみてください。これは非常に一般的であり、メイン関数にすべてを含めることを想像してください。それを維持するのは絶対に悪夢です。コードを関数に分割することである程度の分離が可能になり、多くの開発者がコードベースのさまざまな部分で作業できるようになります。したがって、基本的に短い答えは「はい」です。

于 2013-06-27T15:50:15.967 に答える
0

レゴのような機能だと思います。何百もの小さなピースがあり、それらを組み合わせて全体にすることができます。うまく設計された一般的な小さな部品のおかげで、何でも作ることができます。家全体のように見えるレゴが 1 つあれば、それを使って飛行機や電車を作ることはできません。同様に、1 つの巨大なコードはあまり役に立ちません。

関数は、プロジェクトを設計するときに使用するブリックです。機能を小さく、テストしやすく、自己完結型の「関数」に適切に分離することで、プロジェクト全体の構築と管理が容易になります。それらの利点 WAYYYYYYY は、そこにあると思われる可能性のある効率の問題よりも重要です。

正直なところ、大規模なプロジェクトをコーディングする技術は、プロジェクトをより小さな部分に分割する方法にあるため、関数がその鍵となります。

于 2013-06-27T15:56:00.443 に答える