Odporúčaná, 2019

Redakcia Choice

Rozdiel medzi definíciou a deklaráciou

Definícia a deklarácia sú veľmi mätúce termíny, ak ste noví v programovaní. Tieto dve koncepty sa v niektorých ohľadoch líšia, pretože definícia zahŕňa priradenie pamäte premenným, zatiaľ čo v deklarovanej pamäti nie je priradená. Vyhlásenie sa môže vykonať viackrát, naopak, môže byť jednotka definovaná presne raz v programe.

Definícia je vo väčšine scenárov automaticky vyhlásením. Teraz chápeme rozdiel medzi definíciou a deklaráciou s podrobným porovnávacím grafom.

Porovnávacia tabuľka

Základ pre porovnaniedefiníciavyhlásenie
základnéUrčuje hodnotu uloženú v premennej, funkcii alebo triede.Určuje názov a typ premennej, funkcie, triedu atď.
Prideľovanie pamäteVyskytujeNekoná sa.
opakovanieVyhlásenia nie je možné znova definovať, ak už je definovaná.Vyhlásenie môže byť ľahko možné.
RozsahDĺžka trvania je určenáViditeľnosť je špecifikovaná

Definícia definície

Definícia identifikuje kód alebo údaje spojené s názvom premennej, funkcie, triedy atď. Definícia nevyhnutne vyžaduje kompilátor na pridelenie úložného priestoru pre deklarovanú entitu. Keď je premenná definovaná, obsahuje množstvo pamäte pozostávajúce z niekoľkých bajtov pre danú premennú. Definícia funkcie vytvára kód funkcie. Programový prvok môžeme definovať len raz v programe, pretože definícia je jedinečnou špecifikáciou prvku programu. Vzťah medzi deklaráciou a definíciou môže byť jeden k mnohým .

V niektorých situáciách nemožno programový prvok definovať, ale deklarovať, napríklad keď nie je žiadna funkcia nikdy vyvolaná alebo jej adresa sa nikdy nepoužíva, aj keď je deklarovaná. Ďalším príkladom je, že definícia triedy sa nepoužíva, kým sa musí deklarovať.

Definícia vyhlásenia

Deklarácia slúži na zadanie mien do programu, ako je názov premennej, funkcie, menný priestor, triedy atď. V programe nemožno použiť žiadne meno bez jeho deklarácie. Prvky programu je možné deklarovať niekoľkokrát, na rozdiel od definície. Viaceré deklarácie sa môžu dosiahnuť iba vtedy, keď sa rozličné deklarácie vykonávajú pomocou rovnakého formátu. Deklarácia je prostriedkom na zabezpečenie viditeľnosti prvku programu v perspektíve kompilátorov.

Vyhlásenie slúži na účely definície, iba v určitých prípadoch nie je implicitná podmienka uvedená nižšie.

  • Keď sa člen statického údaju deklaruje vo vyhlásení o triede, v tomto prípade nie je vyhlásenie. Pretože vygeneruje len jednu kópiu pre všetky objekty triedy a statické dáta sú súčasťou objektov poskytnutého typu triedy.
  • Ak je vyhlásenie typové vyhlásenie.
  • Premenná sa deklaruje bez inicializátora alebo funkčného telesa, ale obsahuje aj externé špecifikátory. Označuje, že definícia môže byť pre inú funkciu a poskytuje názov externé prepojenie.
  • Vyhlásenie o názve triedy bez definície, akou je trieda T;

Zvyčajne sa deklarácia uskutočňuje v rozsahu . Rozsah určuje viditeľnosť deklarovaného názvu a trvania definovaného objektu.

Kľúčové rozdiely medzi definíciou a deklaráciou

  1. Definícia prvku programu určuje hodnotu priradenú tomuto prvku. Na druhej strane deklarácia prvku programu špecifikuje jeho meno a typ kompilátorovi.
  2. Definícia prvku programu si vyhradzuje určité množstvo pamäte, zatiaľ čo vyhlásenie nezahŕňa alokáciu pamäte.
  3. Prvok programu sa môže deklarovať viackrát. Naopak, definícia obsahuje jedinečnú špecifikáciu s názvom programového prvku, ktorý sa dá rozlíšiť akýmkoľvek kódom alebo údajmi.
  4. Rozsah v deklarácii opisuje viditeľnosť premennej, funkcie, objektu, triedy, výčtu atď. Na rozdiel od toho v definícii sa rozsah vzťahuje na trvanie.

Príklad definície

  • Definícia premennej, ako aj vyhlásenie:
    int r = 10;
  • Definícia funkcie:
     int pridať (int x, int y) {int a; a = x + y; vrátiť a; } 

Príklad vyhlásenia

  • Prehlásenie o premenných:
    extern int r;
  • Vyhlásenie funkcie:
    int add (int p1, int p2);

záver

Proces deklarovania sa používa na to, aby bol prvok programu viditeľný pre kompilátor a nevyžaduje pridelenie pamäte. Inverznou definíciou je deklarácia rezervného ukladania, jednoduchým slovom kompilátor si vyhradzuje pamäťový priestor pre deklarovanú entitu.

Top