Zalecane, 2020

Wybór Redakcji

Różnica między definicją a deklaracją

Definicja i deklaracja to bardzo mylące pojęcia, jeśli dopiero zaczynasz programować. Te dwie koncepcje różnią się pod pewnymi względami, ponieważ definicja wiąże się z przypisaniem pamięci do zmiennych, podczas gdy w pamięci deklaracji nie jest alokowana. Deklaracja może być wykonana więcej niż raz, i odwrotnie, jednostka może być zdefiniowana dokładnie raz w programie.

Definicja jest automatycznie deklaracją w większości scenariuszy. Rozumiemy teraz różnicę między definicją i deklaracją a szczegółową tabelą porównawczą.

Wykres porównania

Podstawa do porównaniaDefinicjaDeklaracja
PodstawowyOkreśla wartość przechowywaną w zmiennej, funkcji lub klasie.Określa nazwę i typ zmiennej, funkcji, klasy itp.
Przydzielanie pamięciWystępujeNie ma miejsca.
PowtórzenieOświadczenia nie mogą być zdefiniowane ponownie, jeśli raz jest już zdefiniowany.Redeclaracja może być łatwo możliwa.
ZakresCzas trwania jest ustalanyWidoczność jest określona

Definicja definicji

Definicja identyfikuje kod lub dane związane z nazwą zmiennej, funkcji, klasy itp. Definicja jest koniecznie wymagana przez kompilator do przydzielenia przestrzeni pamięci dla zadeklarowanej jednostki. Gdy zmienna jest zdefiniowana, zawiera ilość pamięci składającą się z kilku bajtów dla tej zmiennej. Definicja funkcji generuje kod funkcji. Możemy zdefiniować element programu tylko raz w programie, ponieważ definicja jest unikalną specyfikacją elementu programu. Związek między deklaracją a definicją może być jeden do wielu .

W niektórych sytuacjach element programu nie może być zdefiniowany, ale zadeklarowany, na przykład, gdy funkcja nigdy nie jest wywoływana lub jej adres nigdy nie jest używany, nawet jeśli jest zadeklarowany. Innym przykładem jest to, że definicja klasy nie jest używana, gdy musi być zadeklarowana.

Definicja deklaracji

Deklaracja służy do określania nazw programu, takich jak nazwa zmiennej, funkcji, przestrzeni nazw, klas itp. W programie nie można używać nazwy bez jej deklaracji. Elementy programu można zadeklarować wiele razy, w przeciwieństwie do definicji. Wiele deklaracji można osiągnąć tylko wtedy, gdy różne deklaracje są dokonywane przy użyciu identycznego formatu. Deklaracja jest medium zapewniającym widoczność elementu programu w perspektywie kompilatorów.

Deklaracja służy do definicji, tylko w niektórych przypadkach warunek ten nie jest domyślny, który podano poniżej.

  • Kiedy statyczny element danych jest zadeklarowany w deklaracji klasy, w takim przypadku nie jest deklaracją. Ponieważ generuje tylko jedną kopię dla wszystkich obiektów klasy, a statyczne elementy danych są składnikami obiektów podanego typu klasy.
  • Jeśli deklaracja jest instrukcją typef.
  • Zmienna jest zadeklarowana bez inicjatora lub treści funkcji, ale zawiera specyfikatory zewnętrzne. Wskazuje, że definicja może dotyczyć innej funkcji i określa nazwę połączenia zewnętrznego.
  • Deklaracja nazwy klasy bez uwzględniania definicji takiej jak klasa T;

Zwykle deklaracja odbywa się w zakresie . Zakres decyduje o widoczności zadeklarowanej nazwy i zdefiniowanym czasie trwania obiektu.

Kluczowe różnice między definicją a deklaracją

  1. Definicja elementu programu określa wartość powiązaną z tym elementem. Z drugiej strony deklaracja elementu programu określa jego nazwę i typ dla kompilatora.
  2. Definicja elementu programu zastrzega pewną ilość pamięci, podczas gdy deklaracja nie obejmuje alokacji pamięci.
  3. Element programu można zadeklarować wiele razy. Odwrotnie, definicja zawiera unikalną specyfikację z nazwą elementu programu, którą można rozróżnić za pomocą dowolnego kodu lub danych.
  4. Zakres w deklaracji opisuje widoczność zmiennej, funkcji, obiektu, klasy, wyliczenia itp. Natomiast w definicji zakres dotyczy czasu trwania.

Definicja Przykład

  • Definicja zmienna oraz deklaracja:
    int r = 10;
  • Definicja funkcji:
     int dodaj (int x, int y) {int a; a = x + y; return a; } 

Przykład deklaracji

  • Deklaracja zmiennej:
    extern int r;
  • Deklaracja funkcji:
    int add (int p1, int p2);

Wniosek

Proces deklaracji służy do tego, aby element programu był widoczny dla kompilatora i nie wymaga przydzielania pamięci. Odwrotna definicja to deklaracja przechowująca rezerwę, w prostych słowach kompilator rezerwuje miejsce pamięci dla zadeklarowanej jednostki.

Top