Definitionen är automatiskt en deklaration i det mesta av scenariot. Låt oss förstå skillnaden mellan definition och deklaration med det detaljerade jämförelseskartet.
Jämförelsediagram
Grunder för jämförelse | Definition | Deklaration |
---|---|---|
Grundläggande | Bestämmer värdet som lagras i variabel, funktion eller klass. | Anger namn och typ av variabel, funktion, klass etc. |
Minnesallokering | inträffar | Utspelas inte. |
Upprepning | Uttalanden kan inte definieras igen om en gång den redan är definierad. | Redovisning kan lätt vara möjligt. |
Omfattning | Varaktighet bestäms | Synlighet anges |
Definition av definition
Definition identifierar koden eller data som är associerad med namnet på variabeln, funktionen, klassen etc. Definitionen krävs nödvändigtvis av kompilatorn för att allokera lagringsutrymme för den deklarerade enheten. När en variabel definieras innehåller den en mängd minne som består av flera byte för den variabeln. En funktionsdefinition ger kod för funktionen. Vi kan definiera ett programelement bara en gång i ett program eftersom definitionen är en unik specifikation av ett programelement. Förhållandet mellan deklaration och definition kan vara en till många .
I vissa situationer kan ett programelement inte definieras men deklareras, till exempel när en funktion aldrig åberopas eller adressen aldrig används, även om den är deklarerad. Ett annat exempel är det där klassdefinitionen inte används medan den måste deklareras.
Definition av förklaring
Deklaration används för att ange namnen på programmet, t.ex. namnet på en variabel, funktion, namnrymd, klasser etc. Inget namn kan användas i ett program utan dess deklaration. Programelementen kan deklareras flera gånger, till skillnad från definition. Flera deklarationer kan endast uppnås när de olika deklarationerna görs med samma format. Deklaration är medlet för att ge programelementets synlighet i kompilatorns perspektiv.
Deklarationen tjänar syftet med definitionen, endast i vissa fall förutsätts inte villkoret som anges nedan.
- När den statiska dataleden är deklarerad i en klassdeklaration, är det i så fall inte en deklaration. Eftersom det genererar endast en kopia för alla objekt i klassen och statiska data är medlemmarna komponenterna i objekten av en angiven klasstyp.
- Om en deklaration är typedef uttalande.
- En variabel deklareras utan initialiserare eller funktionskropp men innehåller externa specifikationer. Det indikerar att definitionen kan vara för den andra funktionen och ger namnet extern länk.
- Klassnamndeklarationen utan att inkludera definition som klass T;
Vanligtvis sker deklarationen inom en räckvidd . Omfattningen bestämmer synligheten för det angivna namnet och den definierade objektets varaktighet.
Viktiga skillnader mellan definition och förklaring
- Definitionen av ett programelement bestämmer värdet associerat med det elementet. Å andra sidan anger deklarationen av ett programelement sitt namn och typ till kompilatorn.
- Definitionen av programelementet förbehåller viss mängd minne medan deklarationen inte involverar minnetilldelning.
- Ett programelement kan deklareras flera gånger. Omvänt innehåller definitionen en unik specifikation med namnet på programelementet som skulle kunna särskiljas med någon kod eller data.
- Omfattning i deklarationen beskriver synligheten av variabeln, funktionen, objektet, klassen, uppräkningen, etc. I motsats här hänför sig omfattningen till varaktigheten.
Definition Exempel
- Variabel definition samt deklarationen:
int r = 10;
- Funktionsdefinition:
int add (int x, int y) {int a; a = x + y; returnera a; }
Försäkringsexempel
- Variabeldeklaration:
extern int r;
- Funktionsdeklaration:
int add (int p1, int p2);
Slutsats
Deklarationsprocessen används för att göra programelementet synligt för kompilatorn, och det behöver inte allokera minnet. Omvänd definition är en deklaration som reserverar lagring, i enkla ord förbehåller kompilatorn minnesutrymmet för den deklarerade enheten.