Поделиться через


Спецификаторы классов хранения с объявлениями функций

В объявлениях функций можно использовать описатель класса хранения static или extern. Функции всегда имеют глобальное время существования.

Блок, относящийся только к системам Microsoft

Объявления функций на внутреннем уровне имеют то же значение, что и объявления функций на внешнем уровне. Это означает, что функция видна с момента объявления на протяжении всего времени существования записи преобразования, даже если она объявлена с локальной областью видимости.

Завершение блока, относящегося только к системам Microsoft

Правила видимости для функций слегка отличаются от правил для переменных следующим.

  • Функция, объявленная как static, видна только в пределах файла исходного кода, в котором она определена. Функции в том же файле исходного кода могут вызывать статическую функцию, но функции в других файлах исходного кода не могут получить прямой доступ к ней по имени. Можно объявить другую статическую функцию с тем же именем в другом файле исходного кода, не создавая конфликта.

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

  • Объявления функций, опускающие описатель класса хранения, по умолчанию являются extern.

Блок, относящийся только к системам Microsoft

Microsoft позволяет повторно определять идентификатор extern как статический.

Завершение блока, относящегося только к системам Microsoft

См. также

Ссылки

Классы хранения в C