_Heaplen
_heaplen
Функция Содержит длину локального heap.
Синтаксис extern unsigned _heaplen;
Объявлено в dos.h
Описание _heaplen определяет размер локального heap в ма- лых моделях данных (tiny, small, mediuim). _heaplen не существует в больших моделях данных (compact, large, huge), т.к. они не имеют локаль- ного heap.
В моделях small и medium размер сегмента данных вычисляется следующим образом:
data segment [small,medium] = global data + heap + stack
где размер стека может быть получен по _stklen. Если _heaplen установлен в 0, то программа выде- ляет 64Кбайт для сегмента данных, и действитель- ный размер heap равен:
64К - (global data + stack) байт
По умолчанию _heaplen равен 0, так что вам выде- ляется сегмент данных 64К, пока вы не укажете другое значение _heaplen. В модели tiny все (включая код) находится в одном сегменте, поэтому в сегмент данных включается код и 256 байт для PSP.
data segment [tiny] = 256 + code + global data + heap + stack
Если _heaplen равен 0 в модели tiny, то действи- тельный размер heap получается вычитанием PSP, кода, глобальных данных и стека из 64К.
В моделях compact и large не существует локально- го heap, поэтому сегмент данных равен
data segment [compact,large] = global data + stack В модели huge стек является отдельным сегментом, а каждый модуль имеет собственный сегмент данных.
Смотрите также _