Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Модели памяти в Си


Автор: niki 11.12.2003, 13:09
что такое модели памяти в си?

Автор: August 6.1.2004, 16:03
Под моделью памяти в сях понимают вид памяти, в которой хранится переменная. Бывает
auto - на стеке
register - в регистре
static - в сегменте данных
Остальные блоки памяти получают динамически. Но как именно - это уже детали. Функции выделения по умолчанию работают из хипа по умолчанию, но обычно есть возможность использовать дополнительные хипы или специфику операционки - выделение в виртуальной памяти, в видеопамяти или еще где.

Автор: Vex 6.1.2004, 16:28
Цитата
Под моделью памяти в сях понимают вид памяти, в которой хранится переменная...

Это классы памяти.
Вручную выделять в регистрах память не рекомендуется компилятор сам все намного эффективнее разместит.

Модели памяти немножко другое. Например, Borland C++ поддерживает 6 моделей памяти:

tiny - Общий размер кода, данных и стека - 64Кбайт, все указатели near (16 бит)

small - используются только ближние указатели (16 бит), 64 Кбайт для кода и 64КБайт для данных и стека

medium - используются дальние указатели (far - 32 бита) Лучше использовать, когда код большой, а адресация используется для небольшого объема данных

compact - противоположный медиуму, надо много места под адрессацию, и мало под код, указатели дальние (far - 32 бита) под данные, и 16-битные указатели под код.

large, huge - используются для ооочень больших программ.

Автор: Ursus 8.1.2004, 12:08
Э-э... В винде модель памяти у любого компилятора одна - FLAT с 32 бит указателями и 4 ГБ сегментами.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)