Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Внешнее определение функции
Определение функции имеет форму
определение-функции:
спецификаторы-описания описатель-функции тело-функции необ
Единственными спецификаторами класса памяти, допускаемыми в качестве спецификаторов-описания, являются EXTERN или STATIC; о различии между ними смотри п. 19.2. Описатель фун- кции подобен описателю для "функции, возвращающей...", за исключением того, что он перечисляет формальные параметры определяемой функции.
Оисатель-функции: описатель (список-параметров необ) список параметров: идентификатор идентификатор, список-параметров
тело-функции имеет форму
тело-функции: список-описаний составной-оператор
Идентификаторы из списка параметров и только они могут быть описаны в списке описаний. Любой идентификатор, тип ко- торого не указан, считается имеющим тип INT. Единственным допустимым здесь спецификатором класса памяти является REGISTER; если такой класс памяти специфицирован, то в нача- ле выполнения функции соответствующий фактический параметр копируется, если это возможно, в регистр. Вот простой пример полного определения функции:
INT MAX(A, B, C) INT A, B, C; \( INT M; M = (A>B)? A:B; RETURN((M>C)? M:C); \)
Здесь INT - спецификатор-типа, MAX(A,B,C) - описатель-функ- ции, INT A,B,C; - список-описаний формальных параметров, \( ... \) - Блок, содержащий текст оператора. В языке "C" все фактические параметры типа FLOAT преоб- разуются к типу DOUBLE, так что описания формальных парамет- ров, объявленных как FLOAT, приспособлены прочесть параметры типа DOUBLE. Аналогично, поскольку ссылка на массив в любом контексте (в частности в фактическом параметре) рассматрива- ется как указатель на первый элемент массива, описания фор- мальных параметров вила "массив..." приспособлены прочесть : "указатель на...". И наконец, поскольку структуры, объединения и функции не могут быть переданы функции, бесс- мысленно описывать формальный параметр как структуру, объединение или функцию (указатели на такие объекты, конеч- но, допускаются).
Date: 2015-09-17; view: 376; Нарушение авторских прав |