2012-11-01 13 views
5

Imは特定の変数を初期化するときのベストプラクティスであるかを把握しようとしている... 私のコードは、現時点では、このようになります。 ...初期化変数は

を私のプログラムは、私が働いている編集コンポーネントの新しい行を見つけるたびにリセットされている質問は次のようになります。

は、それはすべてのこれらの変数を宣言して初期化し、より良いプログラミングの練習ですforループの中で、または私はそれを現時点のように残すべきですか?

+2

それは異なります。あなたはfoorループの範囲外にそれらが必要なのでしょうか? – alestanis

答えて

10

可能な限り変数の範囲を常に小さくする必要があります。これにより、コードの保守性が向上し、バグの可能性が減少します。

// bad 
int i, j, k; 
k = 0; 
for (i = 0; i < X, ++i) 
{ 
    j = foo(i); 
    k += j; 
} 

bar(k); 

...対...

// better 
int k=0; // needs scope outside loop 
for (int i = 0; i < X, ++i) 
{ 
    int j = foo(i); 
    k += j; 
} 

bar(k); 
+1

途中でパフォーマンスはどうですか?それは毎回それを高価に初期化しないでしょうか? – sashkello

+3

@sashkello:プリミティブの場合:いいえ。より複雑なものの場合:おそらくそうではありません。 –

+0

私はこの理由のために正確にそれらを変更することを控えてきました。そのためにオーバーヘッドはありますか? - 上記の答えを読んでください。 – RaptorX