C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Определение и объявление  (Прочитано 575 раз)
Sergey1985
Участник
**

Сказали спасибо: +8/-1
Offline Offline

Сообщений: 296


« : 27 Февраль 2018, 21:17:10 »

Уважаемые гуру программного мира. Внесите пожалуйста ясность в след вопрос. В учебнике Павловской сказано что ОБЪЯВИТЬ переменную это значит указать ее тип памяти и тип например
extern int a;   то есть переменная уже должна быть в другом модуле.   А вот ОПРЕДЕЛИТЬ это значит плюс ко всему выше изложенному еще и выделить память. Например
int b;             В то же время в книге Герберта Шилда используется термин ОБЪЯВЛЕНИЯ переменной и в этом случае например
int c; то есть и даже в случае выделения памяти.  Так есть ли разница между терминами ОПРЕДЕЛИТЬ и ОБЪЯВИТЬ переменную?
Записан
Asher
Администратор
***

Сказали спасибо: +110/-5
Offline Offline

Сообщений: 425


« Ответ #1 : 06 Апрель 2018, 16:08:14 »

Здравствуйте.

Для понимания процесса компоновки необходимо понять разницу между объявлением и определением.
Определение связывает имя с реализацией, что может быть либо кодом либо данными:
•   определение переменной побуждает компилятор зарезервировать некоторую область памяти, возможно задав ей некоторое определенное значение;
•   определение функции заставляет компилятор сгенерировать код для этой функции.
Объявление говорит компилятору, что определение функции или переменной (с определенным именем) существует в другом месте программы, вероятно в другом .c файле. При этом определение также является объявлением — фактически это объявление, в котором другое место программы совпадает с текущим.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines
Страница сгенерирована за 0.065 секунд. Запросов: 22.