static
は C でオーバーロードされたキーワードであることはわかっています。ここでは、内部リンケージを強制するためのキーワードとしての使用にのみ関心があります。
ファイルで宣言されたグローバル変数がある場合、使用する場合と使用しない場合.c
の違いは何ですか? いずれにせよ、他のファイルは変数にアクセスできないため、変数は基本的に、 static キーワードの有無にかかわらず、ファイルに対して「プライベート」です。static
static
.c
たとえば、 filefoo.c
があり、グローバル変数を宣言するとします。
int x = 5;
その変数x
は、内部のコードでのみ使用できますfoo.c
(もちろん、共有ヘッダー ファイルでextern
キーワードを使用して宣言しない限り)。しかし、ヘッダー ファイルで宣言しないと、次のように入力した場合の違いは何になるでしょうか。
static int x = 5
.
いずれにせよ、x
ここには内部リンケージがあるようです。だから私はstatic
この点での目的について混乱しています。