Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.15;
Скачать: CL | DM;

Вниз

Вопрос о константах   Найти похожие ветки 

 
SPeller ©   (2002-08-03 08:29) [0]

Всем доброго времени суток!
Меня вот крайне заинтересовал такой вопрос. Когда мы в модуле в разделе описаний объявляем константу, то загружается ли она в память при работе программы, или же в память создаётся её копия при обращении, или ещё как? Подскажите пожалуйста!


 
Слесарь Матерящийся   (2002-08-03 09:57) [1]

Должно быть, статически размещается в теле модуля (логический сегмент .data). Дополнительная память не выделяется, т.к. это не нужно.


 
Урри   (2002-08-03 10:43) [2]

Значения нетипизированных констант (A=1) подставляются компилером непосредственно в код. Типизированные константы (A:integer=1) предсталяют собой обычные переменные, просто при инициализации им присваивается указанное значение.


 
Anatoly Podgoretsky ©   (2002-08-03 11:19) [3]

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


 
SPeller ©   (2002-08-03 12:14) [4]

Шо-т я не понял про сегменты (извините уж). Если допустим я определю константу-массисв размером в 5 млн. элементов (например), то скажется ли это отрицательно? Или, "создаётся значение в сегменте кода" - это значит что компилятор просто возьмёт и вместо имени константы подставит то что я наопределял?


 
Anatoly Podgoretsky ©   (2002-08-03 12:22) [5]

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


 
SPeller ©   (2002-08-03 13:18) [6]

Ну хорошо, у меня допустим типизированные константы. Получается что память тратится на их содержание, т.е. они загружаются в память при начале работы программы?


 
Anatoly Podgoretsky ©   (2002-08-03 13:28) [7]

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



Страницы: 1 вся ветка

Текущий архив: 2002.08.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-48039
BAY
2002-07-31 22:42
2002.08.15
Где RxGifAnimator?


3-47975
UnDISCOvery
2002-07-26 14:15
2002.08.15
Уважаемые ! Помогите с кодом разобраться !


1-48120
Proton
2002-07-30 19:30
2002.08.15
RoterPro


1-48177
Дядя Будда
2002-08-02 15:15
2002.08.15
Access violation at address 090C8891 in module RLINK32.DLL


1-48080
evgeg
2002-08-04 11:05
2002.08.15
Проблема с Notification