Четвертый BORLAND С++ и его окружение



         

_Heaplen (dos.h)


Эта переменная содержит длину ближней динамически распределяемой области памяти в малых моделях данных (tinu. small, medium) и описывается следующим образом:

extern unsigned _heaplen;

В моделях small и medium размер сегмента данных вычисляется

следующим образом:

сегмент данных [small,medium] = глобальные данные +

динамически распределяемая область + стек

где размер стека можно настроить с помощью _stklen.

Если _heaplen установлена в 0 (по умолчанию), то программа

выделяет для сегмента данных 64К, и размером динамически распределяемой области будет:

64K - (глобальные данных + стек)

В модели tiny все (включая код) находится в одном и том же

сегменте, поэтому размер сегмента данных вычисляется следующим

образом (с учетом 256 байт для PSP):

сегмент данных [tiny] = 256 + глобальные данные +

динамически распределяемая область + стек

Если в модели tiny _heaplen = 0, то фактический размер динамически распределяемой области вычисляется вычитанием из 64К PSP,

кода, глобальных данных и стека.

В моделях compact и large ближней динамически распределяемой

области нет, и стек имеет собственный сегмент, поэтому сегмент

данных вычисляется так:

сегмент данных [compact, large] = глобальные данные

В модели huge стек находится в отдельном сегменте, и каждый

модуль имеет собственный сегмент данных.




Содержание  Назад  Вперед