![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размер переменной в памяти [D5, XP]
Учениг © (2006-07-05 21:45:00)type TMyVar = packed record
MyBooleanVariable,
MyBooleanVariable2 : Boolean;
end;
var M : TMyVar;
M.MyBooleanVariable := true;
M.MyBooleanVariable2 := true;
Скажите пожалуйста какой общий объем памяти займет запись M ? Ведь имена полей тоже куда-то запишутся?
Leonid Troyanovsky (2006-07-05 22:27:00) [1]
> Учениг (05.07.06 22:20) [14]
> Я люблю этот форум. Люди здесь хорошие. Приветливые.
Редкостной доброты люди.
Ведь, могли б и расстрелять.
--
Regards, LVT.
Учениг (2006-07-05 22:20:00) [2]
> В коде программы все твои MyBooleanVariable заменяются
> на адрес.
Все понял. Просто сам не догадался.
Спасибо бальшое за подробное объяснение.
Я люблю этот форум. Люди здесь хорошие. Приветливые.
Джо (2006-07-05 22:18:00) [3]> [12] Ketmar © (05.07.06 22:16)
> очередная разводка?
ИМХО, это не развод, а просто "дитя постигает мир", ну, и, соответственно, делится откровениями и открытиями :0)
Ketmar (2006-07-05 22:16:00) [4]очередная разводка? утомили.
Джо (2006-07-05 22:15:00) [5]> А адрес ведь тоже надо как-то хранить?
Что значит "хранить"? В коде программы все твои MyBooleanVariable заменяются на адрес. Вот и все.
Мефисто (2006-07-05 22:13:00) [6]1 байт :)
Учениг (2006-07-05 22:11:00) [7]
> На этапе компиляции MyBooleanVariable заменится адресом
> того места в памяти, где лежит эта переменная
Ага!
А адрес ведь тоже надо как-то хранить? И получаецца что в общем MyBooleanVariable > 1 byte ?
palva (2006-07-05 22:03:00) [8]На этапе компиляции MyBooleanVariable заменится адресом того места в памяти, где лежит эта переменная, а имя переменной пропадет. Если программа запускается в режиме отладки, то вспомогательные таблицы могут воостановить это имя для того чтобы его можно было посмотреть при пошаговом прохождении, но в окончательном варианте имя будет утрачено.
Джо (2006-07-05 22:01:00) [9]В общем, не переживай :о)
Джо (2006-07-05 22:00:00) [10]> [5] Учениг (05.07.06 21:57)
> Э... а че они так? а как тогда? Как система определит что
> этот байтик и есть MyBooleanVariable?
По смещению относительно начала записи и определит.
Учениг (2006-07-05 21:57:00) [11]
> Джо © (05.07.06 21:55) [4]
> > Ведь имена полей тоже куда-то запишутся?
> Нет.
Э... а че они так? а как тогда? Как система определит что этот байтик и есть MyBooleanVariable?
Джо (2006-07-05 21:55:00) [12]> Ведь имена полей тоже куда-то запишутся?
Нет.
Gero (2006-07-05 21:50:00) [13]> А какой объем займет обычная переменная MyBooleanVariable
> : Boolean ?
1 байт. Твоя запись, соответственно, 2.
Учениг (2006-07-05 21:49:00) [14]А какой объем займет обычная переменная MyBooleanVariable : Boolean ?
Мефисто (2006-07-05 21:47:00) [15]SizeOf(твоя запись)