Модели памяти
В 16-разрядных программах Borland С++ вы можете использовать
6 моделей памяти: крохотную, малую, среднюю, компактную, большую
и огромную.
случаях, когда абсолютным критерием достоинства программы
является размер ее загрузочного кода. Это минимальная из
моделей памяти. Все четыре сегментных регистра (CS, DS, SS
и ES) устанавливаются на один и тот же адрес, что дает общий размер кода, данных и стека, равный 64К. Используются
исключительно ближние указатели. Программы со сверхмалой
моделью памяти можно преобразовать к формату .COM (при
компоновке с параметром /t).
прикладных программ. Сегменты кода и данных расположены
отдельно друг от друга и не перекрываются, что позволяет
иметь 64К кода программы и 64К данных и стека. Используются только указатели near.
для которых не требуется держать в памяти большой объем
данных. Для кода, но не для данных используются указатели
far. В результате данные плюс стек ограничены размером
64К, а код может занимать до 1М.
в тех случаях, когда размер кода невелик, но требуется адресация большого объема данных. Указатели far используются
для данных, но не для кода. Следовательно, код здесь ограничен 64К, а предельный размер данных - 1 Мб.
очень больших программах. Дальние указатели используются
как для кода, так и для данных, что дает предельный размер
1 Мб для обоих.
кода, так и для данных. Borland C++ обычно ограничивает
размер статических данных 64К; модель памяти huge отменяет
это ограничение, позволяя статическим данным занимать более 64К.
Для выбора любой из этих моделей памяти вы должны либо воспользоваться соответствующим параметром меню интегрированной среды, либо ввести параметр при запуске компилятора, работающего в
режиме командной строки.
Следующие иллюстрации показывают, как выполняется распределение памяти для всех шести моделей памяти Borland C++.