静的グローバル変数と通常のグローバル変数、静的ローカル変数と通常のローカル変数、静的関数と通常の関数の違いは何ですか?次の記事で一つずつ答えていきます。
(1) グローバル変数(外部変数)の記述の前に static を付けて静的グローバル変数を構成します。グローバル変数自体は静的格納メソッドであり、静的グローバル変数も当然静的格納メソッドです。どちらも保存方法に違いはありません。両者の違いは、非静的グローバル変数の有効範囲がソースプログラム全体であることです。ソースプログラムが複数のソースファイルで構成されている場合、非静的グローバル変数は各ソースファイルで有効になります。 静的グローバル変数はスコープを制限します。つまり、変数が定義されているソース ファイル内でのみ有効であり、同じソース プログラム内の他のソース ファイルでは使用できません。静的グローバル変数のスコープは 1 つのソース ファイルに限定され、そのソース ファイル内の関数でのみ共有できるため、他のソース ファイルでのエラーを回避できます。
(2) 上記の分析から、ローカル変数を静的変数に変更すると、その格納方法が変更され、その有効期間が変更されることがわかります。グローバル変数を静的変数に変更すると、そのスコープが変更され、その使用範囲が制限されます。
(3) static関数のスコープは、このファイル内のみ通常の関数と異なります。現在のソースファイル内でのみ使用される関数は内部関数(static)として宣言し、内部関数を現在のソースファイル内に記述して定義する必要があります。現在のソースファイル外で使用できる関数はヘッダファイルに記述し、その関数を使用するソースファイルにはこのヘッダファイルをインクルードする必要があります。
要約:
静的グローバル変数と通常のグローバル変数の違いは何ですか?
静的グローバル変数は、他のファイル単位で参照されないように 1 回だけ初期化されます。
静的ローカル変数と通常のローカル変数の違いは何ですか?
静的関数と通常の関数の違いは何ですか?
true