常に関数を呼び出すプログラムがあります。私の関数では、その関数内でのみ使用される変数を使用しています。これらの変数をグローバルとして設定して、常に作成されないようにするか、プログラムの残りの部分とは無関係であるため、関数に変数を含める方がよい「スタイル」ですか。
ありがとう
常に関数を呼び出すプログラムがあります。私の関数では、その関数内でのみ使用される変数を使用しています。これらの変数をグローバルとして設定して、常に作成されないようにするか、プログラムの残りの部分とは無関係であるため、関数に変数を含める方がよい「スタイル」ですか。
ありがとう
あなたがしていることは正しいです。グローバルスコープ変数を避けたい。コンパイラまたはインタプリタにメモリ使用量の最適化を任せます。あなたが他の道を行くならば、あなたは傷ついた世界にいるでしょう。
標準的な方法では、変数を必要な範囲内に保持する必要があります。あなたの場合、これらの変数はローカルのみであるため、それらを宣言してローカルで使用します。グローバル変数のロジックは、通常、アプリケーション間のアクセス用です。
クラスと関数が含まれている場合は、関数にローカル変数を含めるのが絶対に最適です。変数が必要な場合は、同じオブジェクトセットのプライベートグローバル変数内のより多くの関数で使用されます。グローバルパブリック変数を使用しないようにしてください。誰が、または何がそれを変更するかはわかりません。
使用している言語はわかりませんが、1つのメソッドでのみ必要な場合は、通常、変数をグローバルとして宣言しないことをお勧めします。
また、変数はそれを保持する関数が呼び出されたときにのみメモリを消費するため、これはメモリ効率が高くなります。
可能な場合にグローバル変数を回避する必要がある理由の詳細については、このリンクを参照してください。
ローカル(自動)変数を割り当てるパフォーマンスコストは事実上ゼロです。これらの変数はスタックポインタに関連して割り当てられ、すでにスタックフレームの一部になっています。ローカル変数のパフォーマンスへの影響はありません。
関数の呼び出し間で値を維持するために変数が必要な場合は、グローバルではなく静的ローカルとして宣言するだけです。