Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Размер переменной в памяти [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(твоя запись)


Наверх

Титульная страница Поиск, карта сайта Написать письмо