Deklaráció

A Programozás Wiki wikiből

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;