| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 ГБ сегментами. |