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

Опубликовано: 30 Декабря, 2021

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

В языке C определение и объявление переменной происходит одновременно. т.е. нет разницы между декларацией и определением. Например, рассмотрим следующее объявление

 int a;

Здесь информация, такая как имя переменной: a и тип данных: int, отправляется компилятору и сохраняется в структуре данных, известной как таблица символов. Наряду с этим будет выделена память размером 2 байта (в зависимости от типа компилятора).

Предположим, если мы хотим только объявлять переменные, а не определять их, т.е. мы не хотим выделять память, то можно использовать следующее объявление

extern int a;

В этом примере отправляется только информация о переменной, а выделение памяти не производится. Приведенная выше информация сообщает компилятору, что переменная a объявлена сейчас, а память для нее будет определена позже в том же файле или в другом файле.

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

 интервал добавления (интервал, интервал);

Здесь объявлена функция с именем add с двумя аргументами типа int и возвращаемого типа int. Память на этом этапе не выделяется.

Определение функции используется для выделения памяти для функции. Например, рассмотрим следующее определение функции,

int добавить (int a, int b)
  {
    возврат (а + б);
  }

Во время этого определения функции будет выделена память для добавления функции. Переменная или функция могут быть объявлены любое количество раз, но могут быть определены только один раз.

Вышеуказанные моменты резюмированы в следующей таблице.

Декларация Определение
Переменная или функция могут быть объявлены любое количество раз. Переменная или функция могут быть определены только один раз
При объявлении память не выделяется Память будет выделена
int f (интервал);

Вышеупомянутое объявление функции. Это объявление предназначено только для информирования компилятора о том, что функция с именем f с типом возвращаемого значения и аргументом int будет использоваться в функции.

int f (int a)
{
  вернуть;
} 

Система выделяет память, просматривая приведенное выше определение функции.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .