Язык С


Область действия внешних идентификаторов


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

Появление ключевого слова EBTERN во внешнем определении указывает на то, что память для описанных в нем идентифика- торов будет выделена в другом файле. Следовательно, в состо- ящей из многих файлов программе внешнее определение иденти- фикатора, не содержащее спецификатора EXTERN, должно появ- ляться ровно в одном из этих файлов. любые другие файлы, ко- торые желают дать внешнее определение этого идентификатора, должны включать в это определение слово EXTERN. Идентифика- тор может быть инициализирован только в том описании, кото- рое приводит к выделению памяти. Идентификаторы, внешнее определение которых начинается со слова STATIC, недоступны из других файлов. Функции могут быть описаны как STATIC.



    Содержание раздела