44
7.2. Описание на функция
7.2. Описание на функция
Описанието на функция е аналогично на описанието на процедура. Единствената
разлика между процедура и функция, е че функцията връща явен резултат от работата
си. Затова описанията на функция и процедура се различават съвсем малко. Вместо
ключовата дума PROCEDURE в описанието на функцията стои FUNCTION, и се задава
типът на резултата, връщан от функцията. В Pascal функциите могат да връщат резултат
само от прост или указателен тип.
FuncDeclaration =
FuncHeading ';' (Block | Directive) ';'.
FuncHeading =
['segment']
'function' Ident [FormalPList] ':' TypeIdent.
В тялото на процедурата трябва поне на едно място да се среща оператор, даващ
резултата от работата на функцията (оператор, даващ стойност на името на функцията
или стандартната процедура RETURN). Използването на името на функцията на друго
място, освен в лявата част на оператор за даване на стойност, означава рекурсивно
обръщение към функцията.
7.3. Формални параметри
Параметрите позволяват при всяко извикване на процедурата да се работи с
обекти (стойности или променливи), задавани в точката на извикване. Списъкът от
формални параметри определя имената и типа, които се използват за работа с тези
обекти в тялото на процедурата или функцията.
FormalPList =
'(' [ Parameter { ',' Parameter } ] ')'.
Parameter =
(['var'| 'const'] IdentList ':' TypeIdent) |
('var' | 'const') IdentList.
Формалните параметри могат да бъдат следните видове:
*
параметри-значения - пред описанието им няма ключова дума VAR или
CONST;
*
параметри-променливи - пред описанието им стои VAR и техният тип е
зададен;
*
параметри-константи - пред описанието им стои CONST и техният тип е
зададен;
*
нетипизирани параметри - пред описанието им стои VAR или CONST (и в
зависимост от това са нетипизирани константи или променливи параметри)
и не е указан техния тип.
7.3.1. Параметри-значения
Идентификаторът на параметър-значение е еквивалентен на идентификатор на
локална променлива, на която преди изпълнението на процедурата (в точката на
извикване) е дадена стойността на фактическия параметър. Изменението на
параметъра-значение в процедурата не се отразява върху фактическия параметър (той
дори може да бъде израз). От извикващата процедура се предава само стойността на
фактическия параметър, затова този вид параметри се наричат още и параметри,
предавани по стойност. Типът на фактическия параметър трябва да бъде съвместим
(assignment compatible) с този на формалния параметър.
<<  <  GO  >  >>

Вернуться к началу сайта