Deklaráció
Deklarációnak nevezzük egy forráskódnak azt a részét, amely egy azonosítót egy változóhoz, alprogramhoz, modulhoz, vagy más nyelvi elemhez köt. A deklaráció általában magába foglalja az elem típusának a meghatározását is.
A deklarációk egyrészt a fordítók dolgát teszik könnyebbé, másrészt egyértelműsítik a kódot. Bizonyos típusos nyelvekben nem is használhatók olyan azonosítók, amelyek deklarációja korábban nem szerepelt. Könyvtárak és tárgy-fájlok (object file) használata esetén is szükség lehet a deklarációkra, hogy a külön fordított programegységek pontosan összeszerkeszthetők legyenek.
Változódeklaráció[szerkesztés]
Változók esetében egy deklaráció általában a név és a típus rögzítéséből áll. Fordított nyelveknél a típus alapján dönti el a fordító, hogy mennyi helyet tartson fenn a változó számára a veremben. Sok programnyelvben a deklarációval együtt a kezdeti érték is megadható. Szintén a deklarációnál jelezhető, ha a változó számára nem ebben a fordítási egységben kell memóriát fenntartani (external).
Függvénydeklaráció[szerkesztés]
Függvények esetén a deklaráció általában a függvény nevének, argumentumainak és visszatérési értékének leírásából áll. Azokban az esetekben, amikor egy függvénynévhez több törzs is tartozik, fontos ismerni az argumentumok pontos típusát, mert a törzs kiválasztása gyakran az aktuális paraméterek típusától függ. A többalakúságot néhány nyelvben külön kulcsszóval (overload) kell jelezni. Ha a függvény deklarációját nem követi azonnal a törzse, bizonyos nyelvekben azt is jelezni kell (forward). Itt is előfordulhat, hogy a törzs egy másik fordítási egységben szerepel, amit az ilyen függvények deklarációjában szintén jelezni kell (external).
Deklarációs fájlok[szerkesztés]
A fordított programoknál technikai okok miatt sokáig szokás volt a deklarációk és megvalósítások szétválasztása. Bizonyos nyelvekben (C, C++) ez a mai napig külön deklarációs fájlok (header file) használatát jelenti. Egy modul fordításakor a fordító a modulhoz tartozó forrásfájl (.c, .cpp), és az összes kapcsolódó modulhoz tartozó deklarációs fájl (.h, .hpp) alapján készíti el a modul tárgykódját. Más nyelvekben (pl. Object Pascal) a két rész egy fájlban de elkülönített részekben (interface, implementation) szerepel.
Példák[szerkesztés]
Változódefiníció C nyelven:
int a, b=5, *c;
függvénydeklaráció Pascal nyelven:
function NumberOfFilesOnDisk( Drive: Char; WithHidden: Boolean ): Integer;