Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
7-48328
Vampy
2002-05-31 20:46
2002.08.15
копирование части изображения bitmap.


14-48256
Виктор
2002-07-18 16:56
2002.08.15
Как в runtime добавить Calc Field в TTable?


7-48345
KarlovAF
2002-05-06 05:46
2002.08.15
Сервис не позволяет завершить работу.


3-47922
Vern
2002-07-23 09:10
2002.08.15
Проблемы с SQL


6-48243
bob1906
2002-05-31 00:11
2002.08.15
Помогите написать прогу типа BackOrifice для Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский