ステートメント ブロックまたは関数定義のスコープを超えて値を保持する必要がない場合は、一時変数を使用する必要があります。
例外があります:
for
変数は、ループ内のインデックスなど、ステートメント ブロックのスコープ外でも使用されます。
- 変数は、ローカル ストレージ (つまり、スタック) をオーバーランするのに十分なサイズです。
- 文字テキストなどの大きな読み取り専用データ。
- 変数は参照としてクライアントに返す必要があります。
変数 (スコープ) を見つけるためのいくつかの経験則またはガイドライン:
- 変数は、できるだけその用途に近い形で宣言してください。
- ステートメント ブロックの内側と外側の両方で参照される変数は、ステートメント ブロックから除外する必要があります。
- 関数間で共有される変数は、ファイル外のファイル内で別名「ファイル ローカル スコープ」で宣言する必要があります。
- 巨大な変数は動的メモリを使用する必要があります。
- 単純な POD よりも大きな変数は、動的メモリを使用し、スマート ポインターを介して渡す必要があります。
HTH。