Главная страница
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.5 MB
Время: 0.029 c
2-1152164844
Wood
2006-07-06 09:47
2006.07.30
Как защитить лист или книгу Excel из Delphi?


1-1150819268
Beduir
2006-06-20 20:01
2006.07.30
Comobox очищается в режиме DropDownList


2-1152620996
Mishenka
2006-07-11 16:29
2006.07.30
Как перевести сантиметры в пикселы?


1-1150811878
Zilog
2006-06-20 17:57
2006.07.30
использование внешней библиотеки


2-1152195935
AlexanderMS
2006-07-06 18:25
2006.07.30
Как прочитать из файла строку UNICODE с последующим переводом...