C++ CSS HTML Java JavaScript MySQL Oracle PERL PHP SQL Unix VBScript XHTML XML Сети
Внешние определения
 

19. Внешние определения.

C-программа представляет собой последовательность внешнихопределений. Внешнее определение описывает идентификатор какимеющий класс памяти extern (по умолчанию), или возможно static, испецифицированный тип. Спецификатор типа ( п. 17.2 ) также может бытьпустым; в этом случае считается, что тип является типом int. Областьдействия внешних определений распространяется до конца файла, вкотором они приведены, точно так же, как влияние описаний простираетсядо конца блока. Синтаксис внешних определений не отличается отсинтаксиса описаний, за исключением того, что только на этом уровнеможно приводить текст функций.

Содержание

19.1. Внешнее определение функции.
19.2. Внешние определения данных.


19.1. Внешнее определение функции.

Определение функции имеет форму

Определение-функции :
спецификаторы-описания необ описатель-функции тело-функции
Единственными спецификаторами класса памяти, допускаемыми в качествеспецификаторов-описания, являются extern или static; о различии междуними смотрите п. 20.2 .Описатель функции подобен описателю для "функции,возвращающей...", за исключением того, что он перечисляет формальныепараметры определяемой функции.

Описатель-функции :
описатель ( список-параметров необ )

Список параметров :
идентификатор
идентификатор, список-параметров

Тело-функции имеет форму

Тело-функции :
список-описаний составной-оператор

класса памяти является register; если такой класспамяти специфицирован, то в начале выполнения функции соответствующийфактический параметр копируется, если это возможно, в регистр.

Вот простой пример полного определения функции:

 int max(a, b, c) int a, b, c; {
int m;
m = (a>b) ? a:b;
return((m>c) ? m:c); }

Здесь int - спецификатор-типа, мах(a,b,c) - описатель-функции, inta,b,c; - список-описаний формальных параметров, { ... } - блок,содержащий текст оператора.

ссылка на массив в любом контексте (в частности в фактическомпараметре) рассматривается как указатель на первый элемент массива,описания формальных параметров вида "массив ..." приспособлены прочесть:"указатель на ...". И наконец, поскольку структуры, об'единения ифункции не могут быть переданы функции, бессмысленно описыватьформальный параметр как структуру, об'единение или функцию (указатели натакие об'екты, конечно, допускаются).


19.2. Внешние определения данных.

Внешнее определение данных имеет форму

Определение-данных :
описание

Классом памяти таких данных может быть extern (в частности, поумолчанию) или static, но не auto или register.

[Назад] [Содержание] [Вперед]

Главная