
Määratlus on automaatselt enamiku stsenaariumi deklaratsioon. Nüüd saame mõista erinevust määratluse ja deklaratsiooni vahel üksikasjaliku võrdluskaardiga.
Võrdluskaart
Võrdluse alus | Määratlus | Deklaratsioon |
---|---|---|
Põhiline | Määrab muutuja, funktsiooni või klassi salvestatud väärtuse. | Määrab muutuja, funktsiooni, klassi jne nime ja tüübi. |
Mälu jaotamine | Esineb | Ei toimu. |
Kordamine | Teatisi ei saa uuesti määratleda, kui need on juba määratletud. | Ümberdeklareerimine on lihtne. |
Reguleerimisala | Kestus määratakse | Nähtavus on täpsustatud |
Mõiste määratlus
Määratlus määratleb koodi või andmed, mis on seotud muutuja, funktsiooni, klassi jne. Dokumendi poolt on deklareeritud üksuse salvestusruumi eraldamiseks tingimata vajalik määratluse määratlemine. Kui muutuja on defineeritud, on sellel muutuja jaoks mitu mälu, mis koosneb mitmest baitist. Funktsioonide määratlus loob funktsiooni koodi. Programmis võib programmielementi määratleda vaid üks kord, sest määratlus on programmi elemendi unikaalne spetsifikatsioon. Deklaratsiooni ja määratluse vaheline suhe võib olla üks-mitmele .
Mõnes olukorras ei saa programmi elementi määratleda, vaid deklareerida, näiteks kui funktsiooni ei kasutata kunagi või selle aadressi ei kasutata kunagi, isegi kui see on deklareeritud. Teine näide on see, kus klassi määratlust ei kasutata, kui seda tuleb deklareerida.
Deklaratsiooni määratlus
Deklaratsiooni kasutatakse programmi nimede määramiseks, näiteks muutuja, funktsiooni, nimeruumi, klasside jne nimi. Programmis ei ole nime võimalik kasutada ilma selle deklaratsioonita. Erinevalt määratlusest saab programmi elemente mitu korda deklareerida. Mitmeid deklaratsioone saab teha ainult siis, kui erinevad deklaratsioonid on koostatud identsel kujul. Deklaratsioon on programmielemendi nähtavuse tagamise vahend koostajate seisukohast.
Deklaratsioon täidab mõiste eesmärki, ainult teatavatel juhtudel ei ole see tingimus allpool esitatud.
- Kui staatilise andmeesitaja deklareeritakse klassideklaratsioonis, ei ole see deklaratsioon. Kuna see genereerib ainult ühe koopia kõigi klassi objektide jaoks ja staatilised andmeliikmed on antud klassi tüüpi objektide komponendid.
- Kui deklaratsioon on typedef.
- Muutuja deklareeritakse ilma algaja või funktsionaalse keha, kuid sisaldab väliseid spetsifikaate. See näitab, et määratlus võiks olla teise funktsiooni jaoks ja annab nime välise sideme.
- Klassi nime deklaratsioon ilma määratluseta nagu klass T;
Tavaliselt toimub deklaratsiooni ulatus . Valdkond otsustab deklareeritud nime nähtavuse ja määratletud objekti kestuse.
Määratluse ja deklaratsiooni olulised erinevused
- Programmielemendi määratlus määrab selle elemendiga seotud väärtuse. Teisest küljest määrab programmielemendi deklaratsioon kompilaatorile selle nime ja tüübi.
- Programmielemendi määratlus jätab teatud hulga mälu, samas kui deklaratsioon ei sisalda mälu eraldamist.
- Programmi elementi saab mitu korda deklareerida. Seevastu sisaldab määratlus ainulaadset spetsifikatsiooni koos programmi elemendi nimega, mida oleks võimalik eristada mis tahes koodi või andmetega.
- Deklaratsiooni ulatus kirjeldab muutuja, funktsiooni, objekti, klassi, loenduse jne nähtavust.
Definitsioon Näide
- Muutuv määratlus ja deklaratsioon:
int r = 10;
- Funktsioonide määratlus:
int add (int x, int y) {int a; a = x + y; tagastama a; }
Deklaratsiooni näide
- Muutuv deklaratsioon:
extern int r;
- Ameti deklaratsioon:
int add (int p1, int p2);
Järeldus
Deklaratsiooniprotsessi kasutatakse programmielemendi kompilaatorile nähtavaks tegemiseks ning see ei nõua mälu eraldamist. Vastupidi, määratlus on deklaratsioon, mis reservi säilitab, lihtsate sõnadega reserveerib kompilaator mäluruumi deklareeritud üksusele.