Директиви за процедури и функции

Сайт на Delphi: ежедневни Delphi-новини, документация, статии, преглед, интервю, компютърен хумор.

В Delphi 8 се използват следните директиви с процедури и функции: register, Delphi, edeel, stdcall и safecall. Например,

Това е така, защото процедурите или функциите, които разработвате, могат да се използват в различни среди за програмиране, където параметрите се извикват в различен ред. Въпреки че няма да обсъждаме тези въпроси, в началния етап на обучение няма да имате нужда от тях, тъй като в средата на Delphi 8 всички повиквания се случват еднакво и няма нужда от тези директиви, но ако разработвате библиотеки, които трябва да работят с други езици на платформата NET, тогава трябва да използвате директивата stdcall. Описанията на тези директиви са дадени в табл. 4.1.

Таблица 4.1. Конвенции за извикване на процедури

Директива за прехвърляне

настройки Изчистване на настройките

регистрирайте отляво надясно

Delphi отляво надясно

edeel Отдясно наляво

stdcall Отдясно наляво

safecall Отдясно наляво

директиви за пренасочване и претоварване

Директивата за претоварване също често се използва в програмите. Можете да правите и без тази директива, но нейното използване прави програмите по-визуални и по-лесни за използване. Например, беше необходимо да се създаде процедура за отпечатване на цели числа. За да направим това, написахме процедура със сигнатура Print (dig: Integer) ,-. След известно време беше необходимо да се напише процедура за отпечатване на реални числа, т.е. Print(dig:Real) ;. Но когато поставите и двете процедури в една и съща програма, компилаторът ще изведе грешка, защото не може да разбере коя процедура да използва, ако процедурата се извиква по следния начин: Print ( 5 ) ;. В този случай има два варианта: илипроменете името на втората процедура, наименувайте я, например FrintReal, или използвайте директивата за претоварване. С други думи, в една програма тези процедури могат да бъдат декларирани по следния начин:

Докато други езици за програмиране имат вградено по подразбиране претоварване на процедури и функции, Delphi го прави изрично. В този случай могат да се разграничат две предимства: компилаторът работи по-бързо и програмата става по-ясна.