Все ли функции в C глобальны? - PullRequest
3 голосов
/ 30 марта 2020

Возможно ли, что функция в ANSI C не может быть доступна из другого файла? Как и когда функции имеют ограниченный доступ? Сначала я подумал, что если функция не включена ни в один заголовок, она является закрытой. Но, похоже, дело не в этом .

1 Ответ

10 голосов
/ 30 марта 2020

Все ли функции в c глобальные?

Нет. Во-первых, то, что многие называют (небрежно) global , C Language вызывает область действия файла с внешней связью .

Кроме того, даже в единице перевода (причудливый способ сказать «предварительно обработанный C файл») идентификатор функции виден только ( в области действия ) от его объявления до конца единицы перевода (или даже включающий блок).

Чтобы задать идентификатор функции внутренняя связь (чтобы другая функция или объект с таким же именем могли существовать в другом объектном файле), вы используете ключевое слово static.

...