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