Ieteicams, 2020

Redaktora Izvēle

Atšķirība starp definīciju un deklarāciju

Definīcija un deklarācija ir ļoti mulsinoši noteikumi, ja esat jauni programmēšanas procesā. Abi jēdzieni dažos veidos ir atšķirīgi, jo definīcija ietver atmiņas piešķiršanu mainīgajiem, kamēr deklarācijas atmiņā netiek piešķirts. Deklarāciju var izdarīt vairāk nekā vienu reizi, savukārt, objektu var definēt tieši vienreiz programmā.

Definīcija automātiski ir deklarācija lielākajā daļā scenārija. Tagad sapratīsim atšķirību starp definīciju un deklarāciju ar detalizētu salīdzināšanas tabulu.

Salīdzinājuma diagramma

Salīdzināšanas pamatsDefinīcijaDeklarācija
PamataNosaka vērtību, kas saglabāta mainīgajā, funkcijā vai klasē.Norāda mainīgā, funkcijas, klases utt. Nosaukumu un veidu.
Atmiņas piešķiršanaNotiekNotiek.
AtkārtojumsPaziņojumus vairs nevar definēt, ja vien tie jau ir definēti.Pārpublicēšana var būt viegli iespējama.
Darbības jomaNosaka ilgumuRedzamība ir norādīta

Definīcijas definīcija

Definīcija identificē kodu vai datus, kas saistīti ar mainīgā, funkcijas, klases utt. Nosaukumu. Kompilators noteikti nosaka definīciju, lai piešķirtu deklarētās vienības uzglabāšanas vietu. Ja mainīgais ir definēts, tam ir daudz atmiņas, kas sastāv no vairākiem baitiem šim mainīgajam. Funkcijas definīcija rada funkcijas funkciju. Programmā var vienkārši definēt programmas elementu, jo definīcija ir unikāla programmas elementa specifikācija. Saikne starp deklarāciju un definīciju var būt viens pret daudziem .

Dažos gadījumos programmas elementu nevar definēt, bet deklarēt, piemēram, ja funkcija nekad netiek izmantota vai tās adrese nekad netiek izmantota pat tad, ja tā ir deklarēta. Vēl viens piemērs ir tas, kurā klases definīcija netiek izmantota, kamēr tā ir jādeklarē.

Deklarācijas definīcija

Deklarācija tiek izmantota, lai norādītu programmas nosaukumus, piemēram, mainīgā, funkcijas, vārda vietas, klases utt. Nosaukumu. Programmā bez tās deklarācijas nevar izmantot nevienu nosaukumu. Programmas elementus var paziņot vairākas reizes, atšķirībā no definīcijas. Vairākas deklarācijas var iegūt tikai tad, ja dažādas deklarācijas tiek sagatavotas, izmantojot identisku formātu. Deklarācija ir programma, kas nodrošina programmas elementa redzamību kompilatoru skatījumā.

Deklarācija kalpo definīcijas mērķim, tikai dažos gadījumos nosacījums nav norādīts, kas ir norādīts zemāk.

  • Ja statiskā datu biedrs tiek deklarēts klases deklarācijā, šādā gadījumā tas nav deklarācija. Tā kā tas rada tikai vienu kopiju visiem klases objektiem un statiskie datu dalībnieki ir iekļauta klases tipa objektu komponenti.
  • Ja deklarācija ir tipedef paziņojums.
  • Mainīgais lielums tiek deklarēts bez inicializatora vai funkcijas struktūras, bet ietver extern specifierus. Tas norāda, ka definīcija varētu būt otrai funkcijai un sniedz nosaukumu ārējā saite.
  • Klases nosaukuma deklarācija bez definīcijas, piemēram, T klase;

Parasti deklarācija notiek apjomā . Darbības joma nosaka deklarētā vārda redzamību un noteikto objekta ilgumu.

Galvenās atšķirības starp definīciju un deklarāciju

  1. Programmas elementa definīcija nosaka vērtību, kas saistīta ar šo elementu. No otras puses, programmas elementa deklarācija nosaka tā nosaukumu un tipu kompilatoram.
  2. Programmas elementa definīcija saglabā zināmu daudzumu atmiņas, bet deklarācija neietver atmiņas sadalījumu.
  3. Programmas elementu var deklarēt vairākas reizes. Savukārt definīcija ietver unikālu specifikāciju ar programmas elementa nosaukumu, kuru var atšķirt ar jebkuru kodu vai datiem.
  4. Deklarācijas darbības joma apraksta mainīgā, funkcijas, objekta, klases, uzskaites utt. Redzamību. Savukārt definīcijā darbības joma attiecas uz ilgumu.

Definīcijas piemērs

  • Mainīgā definīcija, kā arī deklarācija:
    int r = 10;
  • Funkcijas definīcija:
     int add (int x, int y) {int a; a = x + y; atgriezties a; } 

Deklarācijas piemērs

  • Mainīgā deklarācija:
    extern int r;
  • Funkcijas deklarācija:
    int add (int p1, int p2);

Secinājums

Deklarācijas process tiek izmantots, lai padarītu programmu elementu redzamu kompilatoram, un tai nav nepieciešams piešķirt atmiņu. Pretēji definīcija ir deklarācija, kas rezervē uzglabāšanu, vienkāršos vārdos sakot, kompilators patur atmiņas vietu deklarētajam objektam.

Top