Szubrutin irányelvek turbo pascalban 7
10.5. Alprogrami irányelvek
Az irányelvek kiegészítő információt nyújtanak a fordítónak a szubrutinok elhelyezéséről.
10.5.1. FORWARD irányelv
Ha egy szubrutint használ egy másik, és ez viszont először, akkor ott van a probléma, hogy ezeket a rutinokat a programba helyezik (egyik sem helyezhető el a másik előtt). Az ellentmondás megszüntetése. A határidõs irányelvet használják, ami lehetõvé teszi, hogy az alprogramok egyikét két részre osztják.
Az előreirányítás használata esetén először írja be az első szubrutin teljes címét. Ennek a szubrutinnak a testét a továbbítási irányelv váltja fel. Ezután a második szubrutin teljesen le van írva, majd ezt követően az első szubrutint teljesen leírtuk. Ebben az esetben rövidített alprogram-fejlécet írhat, amely magában foglalja a szófolyamatot vagy a funkciót és annak nevét. A formális paraméterek listája és a szubrutin típusa (ha alprogram-függvény) nincs megadva.
Egy példa. Az eljárás Első felhívja az eljárást Másodszor, és ez pedig az első eljárást.
eljárás Első (A, B: Integer); továbbítsa;
Az előreirányító irányelv egyszerűen használható az alprogramok egyszerűbb elhelyezésére: először írja le az összes fejlécet, majd - maguk a szubrutinokat. Ezt az irányelvet nem szabad használni modulokban (lásd a 16. alfejezetet) a modul interfészben bejelentett rutinokhoz.
10.5.2. FAR és NEAR iránymutatások
10.5.3. A KÜLSŐ irányelv
A külső irányelv lehetővé teszi az összeszerelési nyelvben írott és külön összeállított szubrutinok használatát. Ezeket a szubrutinokat a kulcs segítségével kell a főprogramhoz kapcsolni. Itt a fájlnév a fájl neve (a .OBJ kiterjesztéssel), amelyben az összeállítási nyelvben írt alprogramok fordított objektummoduljai.
Max (X, Y: Real) funkció: Real; külső;
eljárás Keresés (var Mas; N: Integer;
var Max, Min: Integer); külső;
külső irányelvet ki kell használni, ha a rutinok assembly nyelven nagyok, és ez jobb összeállítására külön használata helyett a beépített szerelő vagy írja a processzor kódokat inline irányelv (lásd. o. 10.5.5).
10.5.4. Az ASSEMBLER irányelv
Az összeszerelési irányelv lehetővé teszi, hogy egy alprogramot teljes egészében assembly-nyelvben írjon. Ugyanakkor, a fordítás során a szubrutin automatikusan összeáll a Turbo Pascal csomag beépített szerelőjével. Amikor egy ilyen alprogramot hibakereséshez használ, használhatja a beépített hibakereső csomagot.
Egy példa. Olyan függvény, amely meghatározza a két szám maximális számát.
MaxTwo funkció (X, Y: Integer): Integer; szerelő;
asm
MOV AX. X
CMP AX. Y
JG @ 1
MOV AX. Y
@ 1:
végén;
10.5.5. Az INLINE irányelv
Az irányelv lehetővé teszi, hogy a gépkódokba közvetlenül beírt programparancsok szövegébe illesszen be. Más szubrutinokkal ellentétben egy direktvonalas alprogrammal mindenhol hozzáadható mindenhol, ahol van egy hívás (valójában makroszintű meghatározás). Az ilyen szubrutinok olyan paraméterekkel rendelkezhetnek, amelyek a szubrutin szövegében felhasználhatók, és a kötegből szerezhetik azokat.
Az eljárásban lévő gépi kódok zárójelben vannak kitöltve a közvetlen perjel (/) segítségével.
Egy példa. A két számot legfeljebb két számot kiszámító függvény.
10.5.6. INTERRUPT irányelv
A megszakítási irányelv olyan eljárásokra vonatkozik, amelyek a megszakításokat kezelik. Az ilyen eljárásoknak szabványos címe van:
IntHandler eljárás (zászlók, CS, IP, AX,
BX, CX, DX, SI, DI, DS, ES, BP: szó); szakítsa meg;
kezdődik
.
végén;
A fejlécben az egyes paraméterek elhagyhatók (de csak a lista elején), a köztes paraméterek nem törölhetők, például:
IntHandler eljárás (DI, ES, BP: Word); szakítsa meg;
IntHandler eljárás (DI, DS, ES, BP: Word); szakítsa meg;
A megszakítási feldolgozási rutin fejlécében semmilyen más paramétert nem lehet írni.