1. ホーム
  2. c

[解決済み] 静的 vs グローバル

2023-06-22 08:48:05

質問

以下のようなC言語ファイルがあった場合、以下の違いは何ですか? ij ?

#include <stdio.h>
#include <stdlib.h>

static int i;
int j;

int main ()
{
    //Some implementation
}

どのように解決するのですか?

i は内部リンクがあるので、名前を i という名前を他のソースファイル(厳密には翻訳ユニット)で使って、同じオブジェクトを参照することはできません。

j は外部リンクを持っているので j を宣言すれば、このオブジェクトを参照することができます。 extern と宣言した場合、このオブジェクトを参照することができます。