Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
15-1152011582
Alkid
2006-07-04 15:13
2006.07.30
Кодогенератор


6-1142871232
andrey_frik
2006-03-20 19:13
2006.07.30
UDP программа


3-1145022270
Ega23
2006-04-14 17:44
2006.07.30
События TDataLink


15-1151572526
Жук
2006-06-29 13:15
2006.07.30
"Русский шоколад" в Иваново


2-1152519393
fast2
2006-07-10 12:16
2006.07.30
Как узнать, что строка состоит из сивмолов верхнего регистра?




   Наверх