2016-11-14 22 views
-1

の下に従うべき良い習慣を知っている必要がありますか?は私がのようにコードを持っているコード

なぜ私はCPUが機能の最後に行くのを待つ必要があるのですか?私は早くすることができますが、私はいくつかの条件を持って帰ることに決めました。終わりを待つ?

また、私が時間の複雑さを増やすのを待っていれば(私はそれが何の違いもないことは分かっていますが)、命令の数も増えています。

この混乱から脱出するのを手伝ってください。

int good_practice(void) { 
    if(!somethings) { 
     return false; 
    } 
    return true; 
} 

とにかく、問題のコードはかなり冗長です:

答えて

2

これは「早期復帰」と呼ばれ、明確なコンセンサスはないと私は考えています。

長所:

  • あなたが早期に返す場合は、誤って他のいくつかのコードを実行することはできません。
  • この特定の実行分岐を読んでいる場合は、早期リターンによってフローがより明示的になります。
  • 早戻しでインデントレベルを下げることもできます。

短所:

  • あなたは全体の機能を見ている、それが早期復帰を欠場する方が簡単です。

早期返品に関する同様の先の質問see here for exampleがあります。

+1

OPの括弧をIf-Elseに使用しないことを考慮すると、OPはアーリーリターンを使用すべきではありません...アップルのSSL Gotoのバグのようなものに終わるかもしれません;-) – Swanand

1

あなたは、単にこのように確認することができますので、最初のreturn trueを削除し、追加の冗長return trueを持たないように求めています。

あなたはこのように、より良いバージョンでそれを置き換えることができます。

int good_practice(void) 
{ 
    return somethings; 
} 

早期復帰について:

その一般的に良いパフォーマンスが得たので、最後に一つのリターンを持っています以前に戻ったときは、戻り値がの場合はとなり、読みやすさが得られませんでした。

(これは私自身の経験ですが)。

+0

私はdownvotesの説明に感謝します:] – Xatenev

+0

彼はこの特定の状況に興味がありません。これは単なる例です。とにかく関数が最終的に同じ値を返すときに、早期に返るのが理にかなっているかどうかを質問しています。 – zoul

+0

@zoulさて、それについていくつかの文章を追加しました... – Xatenev

関連する問題