2016-10-12 2 views
2

私はこれについて不思議でした。非常に大きなループで使用される変数の場合、最初にダミー値をループの外側(外側)に初期化するか、宣言され、できるだけローカルで初期化されるべきですか?ループ?大きなループの先頭に変数を定義するのは良い方法ですか?

私の質問に関連したこれら2つのポストが矛盾した答えを与えるように見えるので、私は聞いてるのよ: Declare variables at top of function or in separate scopes?
Should we use temporary variables for the returned values of functions?

一つは、それはのようにローカルにできるだけ宣言されるべきであると述べている - 私はこれは、変数を意味と仮定していますループ内で宣言する必要があります。もう1つは、大きなループのローカル宣言が、他の特殊なテクニックが使用されていない限り、パフォーマンスが低下することを示唆しているようです(このケースでは、最良の答えが示す例に慣れていません)。

+6

可能な限り最も内側のスコープで変数を定義します。そうすれば、彼らは必要な時にのみ利用可能になります。十分に言った。あなたのコンパイラは、そのような些細な最適化に対処します。 – DeiDei

+0

ループ外の変数を定義する場合と比べてパフォーマンスが大幅に低下することを意味していますか? – Manuel

+4

*あなたのコンパイラは、そのような些細な最適化に対処します。* – DeiDei

答えて

1

あなたの環境のコンテキストにも依存すると思います。あなたは授業の課題に取り組むことを話していますか?仕事場でプロジェクトを開始する?個人の好み? これは、プログラムを他の人に譲渡する場合です。それを行うための期待された方法があれば、それは私がやる方法です。
もう1つは、ループの外に変数を作成し、ループに入るまで初期化しないことです。そうすれば、ループの外でそれが必要な場合は、利用可能です。

関連する問題