Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по функциям С++.doc
Скачиваний:
168
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

_Heaplen

-----------------------------------------------------------------

НазначениеСодержит длину "близкой" кучи.

Синтаксисextern unsigned _heaplen;

Объявлена вdos.h

Замечания_heaplen содержит размер "близкой" кучи в малых моделях данных (крохотной, малой и средней). В больших моделях (компактной, большой и максимальной) _heaplen не существует, т.к. в этих моделях нет "близкой" кучи.

В малой и средней моделях размер сегмента данных вычисляется следующим образом:

сегмент данных[малая, средняя] = глобальные данные + куча + стек,

где размер стека может быть установлен благодаря переменной _stklen.

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

64К - (глобальные данные + стек) байтов.

По умолчанию _heaplen равна нулю, поэтому вы получите 64К для сегмента данных, если сами не укажете значение _heaplen.

В крохотной модели все (включая программу) содержится в одном сегменте, поэтому формула для вычисления сегмента данных содержит программу и 256 байтов для PSP (префикса сегмента программы):

сегмент данных[крохотная] = 256 + программа + + глобальные данные + куча + стек.

Если _heaplen равна 0 в крохотной модели, эффективный размер кучи получается вычитанием PSP, программы, глобальных данных и стека из 64К.

В компактной и большой моделях нет "близкой" кучи, поэтому сегмент данных просто равен -

сегмент данных[компактная, большая] = глобальные данные + стек.

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

-----------------------------------------------------------------

_Osmajor, _osminor

-----------------------------------------------------------------

НазначениеСодержат главный и дополнительный номера версииDOS.

Синтаксис extern unsigned char _osmajor; extern unsigned char _osminor;

Обьявлены в dos.h

ЗамечанияГлавный и дополнительный номера версии DOS доступны по отдельности через переменные _osmajor и _osminor, где _osmajor - главный номер версии, а _osminor - дополнительный. Например, если вы используете DOS версии 3.2, то _osmajor будет равна 3, а _osminor - 20.

Эти переменные могут быть использованы, когда вы пожелаете написать программу, которая будет выполнятся под управлением DOS версий 2.x и

3.x. Некоторые библиотечные подпрограммы будут иметь отличительную зависимость от номера версии DOS, другие же работают только под управлением DOS версии 3.x. (См., например, _open, creatnew и ioctl в справочном разделе этого руководства.)

-----------------------------------------------------------------

_psp

-----------------------------------------------------------------

Синтаксис extern unsigned int _psp;

Объявлена вstdlib.h

Замечания_psp содержит адресный сегмент префикса сегмента программы (PSP) для выполняемой в данный момент программы. PSP является дескриптором процесса в DOS, он содержит начальную информацию DOS о программе (процессе).

Для получения более полной информации о PSP обратитесь к "Руководству Программиста MS-DOS" фирмы Microsoft.

-----------------------------------------------------------------