
Definicija je automatski deklaracija u većini scenarija. Sada ćemo razumjeti razliku između definicije i deklaracije s detaljnom usporednom tablicom.
Tablica usporedbe
Osnova za usporedbu | definicija | Deklaracija |
---|---|---|
Osnovni, temeljni | Određuje vrijednost pohranjenu u varijabli, funkciji ili klasi. | Određuje naziv i vrstu varijable, funkcije, klase itd. |
Dodjela memorije | Pojavljuje se | Ne događa se. |
Ponavljanje | Izjave se ne mogu ponovno definirati ako su već definirane. | Deklaracija može biti lako moguća. |
djelokrug | Trajanje se određuje | Vidljivost je navedena |
Definicija definicije
Definicija identificira kod ili podatke povezane s imenom varijable, funkcije, klase itd. Definicija je nužno potrebna da bi se dodijelio prostor za pohranu deklariranog entiteta. Kada je varijabla definirana, ona sadrži količinu memorije koja se sastoji od nekoliko bajtova za tu varijablu. Definicija funkcije proizvodi kod za funkciju. Programski element možemo definirati samo jednom u programu jer je definicija jedinstvena specifikacija elementa programa. Odnos između deklaracije i definicije može biti jedan-na-mnogo .
U nekim situacijama, element programa se ne može definirati, ali deklarirati, na primjer kada se funkcija nikada ne pozove ili se njezina adresa nikada ne koristi čak i ako je deklarirana. Drugi primjer je onaj u kojem se definicija klase ne koristi dok se mora deklarirati.
Definicija deklaracije
Deklaracija se koristi za određivanje naziva programa kao što su ime varijable, funkcija, prostor imena, klase itd. U programu se ne može koristiti ime bez njegove deklaracije. Elementi programa mogu se deklarirati više puta, za razliku od definicije. Višestruke izjave mogu se postići samo ako se različite deklaracije izrađuju u istom formatu. Deklaracija je medij osiguravanja vidljivosti elementa programa u perspektivi prevodilaca.
Izjava služi svrsi definicije, samo u određenim slučajevima uvjet se ne podrazumijeva, a koji su navedeni u nastavku.
- Kada je član statičkih podataka deklariran unutar deklaracije klase, u tom slučaju to nije deklaracija. Budući da generira samo jednu kopiju za sve objekte klase, a članovi statičkih podataka su komponente objekata određene klase.
- Ako je deklaracija typedef izjava.
- Varijabla je deklarirana bez inicijalizatora ili tijela funkcije, ali uključuje vanjske specifikatore. To ukazuje da bi definicija mogla biti za drugu funkciju i daje naziv vanjska veza.
- Deklaracija naziva klase bez definicije kao što je klasa T;
Obično se deklaracija odvija u opsegu . Opseg odlučuje o vidljivosti deklariranog imena i definiranog trajanja objekta.
Ključne razlike između definicije i deklaracije
- Definicija elementa programa određuje vrijednost pridruženu tom elementu. S druge strane, deklariranje programskog elementa određuje njegovo ime i tip kompajleru.
- Definicija programskog elementa zadržava određenu količinu memorije dok deklaracija ne uključuje dodjelu memorije.
- Element programa može se deklarirati više puta. Nasuprot tome, definicija uključuje jedinstvenu specifikaciju s nazivom programskog elementa koji se može razlikovati bilo kojim kodom ili podacima.
- Opseg u deklaraciji opisuje vidljivost varijable, funkcije, objekta, klase, nabrajanja, itd. Nasuprot tome, u definiciji se opseg odnosi na trajanje.
Primjer definicije
- Definicija varijable kao i izjava:
int r = 10;
- Definicija funkcije:
int add (int x, int y) {int a; a = x + y; return a; }
Primjer deklaracije
- Deklaracija varijable:
extern int r;
- Izjava o funkciji:
int add (int p1, int p2);
Zaključak
Proces deklaracije koristi se da bi element programa bio vidljiv kompilatoru i ne zahtijeva dodjeljivanje memorije. Obrnuta definicija je deklaracija koja rezervira pohranu, jednostavnim riječima prevoditelj zadržava memorijski prostor za deklariranu entitet.