1.6.2. Объявления функций

Содержание
На предыдущую страницу к разделу 1.6.1. Исходные файлы и объявление переменных

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

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

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

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

3. Если в объявлении функции отсутствует спецификатор класса памяти, то по умолчанию принимается класс extern.
 

Все объекты с классом памяти extern компилятор помещает в объектномфайле в специальную таблицу внешних ссылок, которая используется редактором связей для разрешения внешних ссылок. Часть внешних ссылок порождается компилятором при обращениях к библиотечным функциям СИ, поэтому для разрешения этих ссылок редактору связей должны быть доступны соответствующие библиотеки функций.
 

Читать далее. Раздел 1.6.3. Время жизни и область видимости программных объектов
Содержание

Добавить комментарий

Ваш e-mail не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.