Я знаю, static
- это перегруженное ключевое слово в C. Здесь меня интересует только его использование в качестве ключевого слова для обеспечения внутренней связи.
Если у вас есть глобальная переменная, объявленная в файле .c
, в чем разница между использованием static
и static
? В любом случае, никакой другой файл .c
не имеет доступа к переменной, поэтому переменная в основном является «закрытой» для файла со статическим ключевым словом или без него.
Например, если у меня есть файл foo.c
, и я объявляю глобальную переменную:
int x = 5;
Эта переменная x
доступна только для кода внутри foo.c
(если, конечно, я не объявил ее в каком-то файле общего заголовка с ключевым словом extern
). Но если я не объявлю это в заголовочном файле, какая разница, если я наберу:
static int x = 5
.
В любом случае, кажется, x
имеет внутреннюю связь здесь. Поэтому я не совсем понимаю цель static
в этом отношении.