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