Рекомендуем, 2024

Выбор редакции

Разница между определением и декларацией

Определение и декларация - очень запутанные термины, если вы новичок в программировании. Эти два понятия в некоторых отношениях различны, поскольку определение включает в себя назначение памяти переменным, тогда как в объявлении память не выделяется. Объявление может быть сделано более одного раза, и наоборот, сущность может быть определена в программе ровно один раз.

Определение автоматически объявляется в большинстве сценариев. Теперь давайте разберемся в разнице между определением и объявлением с помощью подробной сравнительной таблицы.

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

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

Определение определения

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

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

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

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

Декларация служит цели определения, только в определенных случаях не подразумевается условие, которое приводится ниже.

  • Когда член статических данных объявляется внутри объявления класса, в этом случае это не объявление. Поскольку он генерирует только одну копию для всех объектов класса, а члены статических данных являются компонентами объектов указанного типа класса.
  • Если объявление является оператором typedef.
  • Переменная объявляется без инициализатора или тела функции, но содержит внешние указатели. Это указывает на то, что определение может относиться к другой функции и предоставляет имя внешней связи.
  • Объявление имени класса без включения определения, такого как класс T;

Обычно декларация происходит в области видимости . Область действия определяет видимость объявленного имени и заданную продолжительность объекта.

Ключевые различия между определением и декларацией

  1. Определение программного элемента определяет значение, связанное с этим элементом. С другой стороны, объявление элемента программы указывает его имя и тип для компилятора.
  2. Определение элемента программы резервирует некоторое количество памяти, в то время как объявление не включает выделение памяти.
  3. Программный элемент может быть объявлен несколько раз. И наоборот, определение включает в себя уникальную спецификацию с именем программного элемента, который может различаться любым кодом или данными.
  4. Область действия в объявлении описывает видимость переменной, функции, объекта, класса, перечисления и т. Д. Напротив, в определении область действия относится к продолжительности.

Пример определения

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

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

  • Объявление переменной:
    extern int r;
  • Объявление функции:
    int add (int p1, int p2);

Заключение

Процесс объявления используется, чтобы сделать программный элемент видимым для компилятора, и он не требует выделения памяти. Обратное определение - это объявление, которое резервирует хранилище, иными словами, компилятор резервирует пространство памяти для объявленной сущности.

Top