Спецификаторы классов хранения с объявлениями функций
В объявлениях функций можно использовать описатель класса хранения static или extern. Функции всегда имеют глобальное время существования.
Блок, относящийся только к системам Microsoft
Объявления функций на внутреннем уровне имеют то же значение, что и объявления функций на внешнем уровне. Это означает, что функция видна с момента объявления на протяжении всего времени существования записи преобразования, даже если она объявлена с локальной областью видимости.
Завершение блока, относящегося только к системам Microsoft
Правила видимости для функций слегка отличаются от правил для переменных следующим.
Функция, объявленная как static, видна только в пределах файла исходного кода, в котором она определена. Функции в том же файле исходного кода могут вызывать статическую функцию, но функции в других файлах исходного кода не могут получить прямой доступ к ней по имени. Можно объявить другую статическую функцию с тем же именем в другом файле исходного кода, не создавая конфликта.
Функции, объявленные как extern, видны во всех файлах исходного кода программы (если впоследствии такая функция не будет повторно объявлена как статическая). Любая функция может вызывать функцию extern.
Объявления функций, опускающие описатель класса хранения, по умолчанию являются extern.
Блок, относящийся только к системам Microsoft
Microsoft позволяет повторно определять идентификатор extern как статический.
Завершение блока, относящегося только к системам Microsoft