グローバル変数を static で宣言したかどうか、1 つ疑問があります。
file1.c
static int a=5;
main()
{
func();
}
extern を使用して別の file2.c にアクセスできますか?
file2.c
func()
{
extern int a;
printf(a);
}
または static なしで宣言されたグローバル変数のみが extern を使用してアクセスできますか?
いいえ!
static
変数のスコープを同じ翻訳単位に制限します。変数に内部リンケージ
static
を与え、この変数は、作成された翻訳単位を超えてアクセスできません。
異なるファイル間で変数にアクセスする必要がある場合は、static
キーワードを削除してください。
これは、静的の 2 つの意味を誤解しているようです。