![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Строковые константы [D7, WinXP]
DesWind © (2004-11-09 10:12:00)При объявлении строковой константы:
const
Str='string'
Под нее выделяется память или ее значение подставляется прямо в код на этапе компиляции? и что происходит если в коде я напишу такую строку:
var
Str: string;
begin
...
Str:='string';
...
end;
jack128 (2004-11-09 16:27:00) [1]clickmaker © (09.11.04 11:04) [3]
> DesWind © (09.11.04 10:12)
Под нетипизированные не выделяется
а под типизированные - в зависимости от директивы $WRITEABLECONST
Poirot (2004-11-09 15:56:00) [2]Кстати на эту тему мне очень понравилась статья на rsdn, как раз про менеджер памяти дельфовый:) классная штука:)
KilkennyCat (2004-11-09 13:43:00) [3]
> Poirot © (09.11.04 13:21) [7]
понял... я почему-то думал, что они именно просто так.
Poirot (2004-11-09 13:21:00) [4]Ну можно и посмотреть, только сам процесс загрузки ты там не увидешь:) как и собственно такая весч как resourcestring просто так как константы не грузятся:).... а ты их посмотреть можешь:)))))))))))
KilkennyCat (2004-11-09 13:17:00) [5]
> Poirot © (09.11.04 13:14) [5]
зачем? достаточно просто посмотреть каким-нить кексвьювом...
Poirot (2004-11-09 13:14:00) [6]А если оочень интересно, то можно взять дебагер в руки и продебажить весь процесс загрузки и увидешь, что джа как, тока капаться в асме придётся + Memory Manager :)
KilkennyCat (2004-11-09 11:11:00) [7]а если и типизированная, но нигде не изменяется, то разве при включенной оптимизации компилятор не расценит ее как константу?
хотя, это елементарно проверить практическим путем...
clickmaker (2004-11-09 11:04:00) [8]
> DesWind © (09.11.04 10:12)
Под нетипизированные не выделяется
Digitman (2004-11-09 10:50:00) [9]
> DesWind
ты уж как-нибудь определись для начала, то ли у тебя const Str, то ли var Str ..
KilkennyCat (2004-11-09 10:43:00) [10]не уверен, но думаю, это зависит от вкл\выкл оптимизации компилятора.