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

Вниз

Размер переменной в памяти   Найти похожие ветки 

 
Учениг   (2006-07-05 21:45) [0]

type TMyVar = packed record
MyBooleanVariable,
MyBooleanVariable2 : Boolean;
end;

var M : TMyVar;

M.MyBooleanVariable := true;  
M.MyBooleanVariable2 := true;

Скажите пожалуйста какой общий объем памяти займет запись M ? Ведь имена полей тоже куда-то запишутся?


 
Мефисто   (2006-07-05 21:47) [1]

SizeOf(твоя запись)


 
Учениг   (2006-07-05 21:49) [2]

А какой объем займет обычная переменная MyBooleanVariable : Boolean ?


 
Gero ©   (2006-07-05 21:50) [3]

> А какой объем займет обычная переменная MyBooleanVariable
> : Boolean ?

1 байт. Твоя запись, соответственно, 2.


 
Джо ©   (2006-07-05 21:55) [4]

> Ведь имена полей тоже куда-то запишутся?

Нет.


 
Учениг   (2006-07-05 21:57) [5]


> Джо ©   (05.07.06 21:55) [4]
> > Ведь имена полей тоже куда-то запишутся?
> Нет.

Э... а че они так? а как тогда? Как система определит что этот байтик и есть MyBooleanVariable?


 
Джо ©   (2006-07-05 22:00) [6]

> [5] Учениг   (05.07.06 21:57)

> Э... а че они так? а как тогда? Как система определит что
> этот байтик и есть MyBooleanVariable?

По смещению относительно начала записи и определит.


 
Джо ©   (2006-07-05 22:01) [7]

В общем, не переживай :о)


 
palva ©   (2006-07-05 22:03) [8]

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


 
Учениг   (2006-07-05 22:11) [9]


> На этапе компиляции MyBooleanVariable заменится адресом
> того места в памяти, где лежит эта переменная

Ага!
А адрес ведь тоже надо как-то хранить? И получаецца что в общем  MyBooleanVariable > 1 byte ?


 
Мефисто   (2006-07-05 22:13) [10]

1 байт :)


 
Джо ©   (2006-07-05 22:15) [11]

> А адрес ведь тоже надо как-то хранить?

Что значит "хранить"? В коде программы все твои MyBooleanVariable заменяются на адрес. Вот и все.


 
Ketmar ©   (2006-07-05 22:16) [12]

очередная разводка? утомили.


 
Джо ©   (2006-07-05 22:18) [13]

> [12] Ketmar ©   (05.07.06 22:16)
> очередная разводка?

ИМХО, это не развод, а просто "дитя постигает мир", ну, и, соответственно, делится откровениями и открытиями :0)


 
Учениг   (2006-07-05 22:20) [14]


>  В коде программы все твои MyBooleanVariable заменяются
> на адрес.

Все понял. Просто сам не догадался.
Спасибо бальшое за подробное объяснение.

Я люблю этот форум. Люди здесь хорошие. Приветливые.


 
Leonid Troyanovsky ©   (2006-07-05 22:27) [15]


> Учениг   (05.07.06 22:20) [14]

> Я люблю этот форум. Люди здесь хорошие. Приветливые.


Редкостной доброты люди.
Ведь, могли б и расстрелять.

--
Regards, LVT.



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

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

Наверх




Память: 0.49 MB
Время: 0.042 c
4-1145132365
Antonyan
2006-04-16 00:19
2006.07.30
Проблема с Async Professional


15-1151518671
Somename
2006-06-28 22:17
2006.07.30
Как заставить контору заплатить


3-1148381328
HelpMe
2006-05-23 14:48
2006.07.30
Ошибка с TSocketConnection


2-1152781173
Первокласник Вася
2006-07-13 12:59
2006.07.30
Как можно паковать?


5-1136303968
FunkyByte
2006-01-03 18:59
2006.07.30
Создание потомка TComponent с нестандартным владельцем