Препоръчано, 2020

Избор На Редактора

Разлика между дефиниция и декларация

Определението и Декларацията са много объркващи термини, ако сте нов в програмирането. Двете понятия са различни в някои отношения, тъй като дефиницията включва присвояване на паметта към променливите, докато в декларацията паметта не е разпределена. Декларацията може да се извърши повече от един път, и обратно, един обект може да се дефинира точно веднъж в програмата.

Дефиницията автоматично се декларира в повечето сценарии. Сега нека разберем разликата между дефиницията и декларацията с подробната таблица за сравнение.

Сравнителна таблица

Основа за сравнениедефинициядекларация
ОсновенОпределя стойността, съхранявана в променлива, функция или клас.Указва името и типа на променливата, функцията, класа и т.н.
Разпределение на паметтаСрещаНе се случва.
повторениеИзвлеченията не могат да бъдат дефинирани отново, ако вече са дефинирани.Декларирането може лесно да бъде възможно.
ОбхватОпределя се продължителносттаВидимостта е посочена

Определение на дефиницията

Определението идентифицира кода или данните, свързани с името на променливата, функцията, класа и т.н. Определението задължително се изисква от компилатора, за да разпредели пространството за съхранение на декларирания обект. Когато дадена променлива е дефинирана, тя съдържа количество памет, състоящо се от няколко байта за тази променлива. Дефинирането на функция произвежда код за функцията. Можем да дефинираме програмен елемент само веднъж в програмата, защото дефиницията е уникална спецификация на програмен елемент. Връзката между декларацията и дефиницията може да бъде едно към много .

В някои ситуации един програмен елемент не може да бъде дефиниран, но деклариран, например когато никога не се извиква функция или адресът му никога не се използва, дори ако е деклариран. Друг пример е този, при който дефиницията на класа не се използва, докато тя трябва да бъде декларирана.

Определение на декларацията

Декларацията се използва, за да се уточнят имената на програмата, като например името на променлива, функция, пространство от имена, класове и т.н. Елементите на програмата могат да бъдат декларирани многократно, за разлика от дефиницията. Множество декларации могат да бъдат постигнати само когато различните декларации са направени с помощта на идентичен формат. Декларацията е средство за осигуряване на видимост на програмния елемент от гледна точка на съставителите.

Декларацията служи за целите на дефиницията, но само в някои случаи условието не се подразбира, което е дадено по-долу.

  • Когато членът на статични данни е деклариран в декларация за клас, в този случай той не е декларация. Тъй като генерира само едно копие за всички обекти на класа и статичните членове на данните са компонентите на обектите от предоставения клас клас.
  • Ако декларацията е typedef оператор.
  • Променливата се декларира без инициализатор или функция, но включва външни спецификатори. Той показва, че дефиницията може да бъде за другата функция и предоставя името външна връзка.
  • Декларацията за името на класа, без да включва определение като клас T;

Обикновено декларацията се извършва в обхват . Обхватът определя видимостта на декларираното име и дефинираната продължителност на обекта.

Основни разлики между дефиниция и декларация

  1. Дефиницията на програмен елемент определя стойността, свързана с този елемент. От друга страна, декларирането на програмен елемент определя неговото име и тип на компилатора.
  2. Дефиницията на програмния елемент запазва известно количество памет, докато декларацията не включва разпределение на паметта.
  3. Елемент на програма може да бъде деклариран многократно. Обратно, дефиницията включва уникална спецификация с името на програмния елемент, който може да бъде различен от всеки код или данни.
  4. Обхватът в декларацията описва видимостта на променливата, функцията, обекта, класа, изброяването и т.н. За разлика от дефиницията, обхватът се отнася до продължителността.

Пример за определение

  • Определение на променливата, както и декларацията:
    int r = 10;
  • Дефиниция на функцията:
     int add (int x, int y) {int a; a = x + y; връщане a; } 

Пример за декларация

  • Деклариране на променлива:
    extern int r;
  • Декларация на функцията:
    int add (int p1, int p2);

заключение

Процесът на деклариране се използва, за да направи елемента на програмата видим за компилатора и не изисква да се разпределя паметта. Обратно, дефиницията е декларация, която запазва съхранението, с прости думи компилаторът запазва мястото за памет на декларираното лице.

Top