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

       

Модели памяти


В 16-разрядных программах Borland С++ вы можете использовать

6 моделей памяти: крохотную, малую, среднюю, компактную, большую

и огромную.

  • (крохотная). Эта модель памяти используется в тех

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

    является размер ее загрузочного кода. Это минимальная из

    моделей памяти. Все четыре сегментных регистра (CS, DS, SS

    и ES) устанавливаются на один и тот же адрес, что дает общий размер кода, данных и стека, равный 64К. Используются

    исключительно ближние указатели. Программы со сверхмалой

    моделью памяти можно преобразовать к формату .COM (при

    компоновке с параметром /t).

  • (малая). Эта модель хорошо подходит для небольших

    прикладных программ. Сегменты кода и данных расположены

    отдельно друг от друга и не перекрываются, что позволяет

    иметь 64К кода программы и 64К данных и стека. Используются только указатели near.

  • (средняя). Эта модель годится для больших программ,

    для которых не требуется держать в памяти большой объем

    данных. Для кода, но не для данных используются указатели

    far. В результате данные плюс стек ограничены размером

    64К, а код может занимать до 1М.

  • (компактная). Лучше всего использовать эту модель

    в тех случаях, когда размер кода невелик, но требуется адресация большого объема данных. Указатели far используются

    для данных, но не для кода. Следовательно, код здесь ограничен 64К, а предельный размер данных - 1 Мб.

  • (большая). Модели large и huge применяются только в

    очень больших программах. Дальние указатели используются

    как для кода, так и для данных, что дает предельный размер

    1 Мб для обоих.

  • (огромная). Дальние указатели используются как для

    кода, так и для данных. Borland C++ обычно ограничивает

    размер статических данных 64К; модель памяти huge отменяет

    это ограничение, позволяя статическим данным занимать более 64К.

  • Для выбора любой из этих моделей памяти вы должны либо воспользоваться соответствующим параметром меню интегрированной среды, либо ввести параметр при запуске компилятора, работающего в

    режиме командной строки.

    Следующие иллюстрации показывают, как выполняется распределение памяти для всех шести моделей памяти Borland C++.



    Содержание раздела