Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Вказівники типу far






    З метою економії пам'яті у вказівниках, які використовуються в ОС з сегментованою пам'яттю зберігається лише зміщення відносно по­чат­ку даного сегменту. Такий тип вказівника називається близьким і є ти­пом по замовчуванні, або оголошується шляхом використання заре­зер­вованого слова near.

    Окрім near-вказівників С++ підтримує далекий тип вказівників (або вказівники типу far), який дає змогу зберігати повну ін­формацію про адресацію (сегмент+зміщення). Загальний синтаксис ого­лошення далеких вказівників має вигляд

    [const] type* far pointerName[=address];

    Незалежно від типу на які посилаються вказівники для near-вказівників виділяється одна цілочисельна комірка пам’яті розміром два байти; для far-вказівників - дві комірки, тобто 4 байти.

    Основне призначення far-вказівників, це звертання до так званих да­леких адрес - адрес, які можуть бути визначені лише явним зберігання пари сегмент+зміщення.

    10. Вказівники і динамічні змінні (керування пам'яттю)

    Вказівники реалізовують багатоцільовий мехнізм. З одного боку вони використовуються для непрямої адресації існуючих змінних, які розміщені в області стеку (сегмент SS) чи в області даних (сегмент DS), і забезпечують тим альтернативний доступ до їх значень. З іншого - вказівники дозволять керувати розподілом динамічної пам’яті - купи (heap).

    Змінні, які розміщуються в купі, називаються динамчними. В пере­важній більшості вони є безіменними, а доступ до них забезпечується вказівниками чи посиланнями.

    Існує два види куп:

    - локальна (або ближня - local heap) купа. Це купа, яка формується в сегменті DS,

    - глобальна (або далека - global heap) купа. Це купа, яка формується з незайнятої прикладною програмою області адесного простору, яки виділений даній програмі.

    В різних моделях пам’яті програм [ ] - способах розміщення сег­ментів програми в оперативній пам’яті при її запуску - можуть бути різні співвідношення існування локальної та глобальної куп. Зокрема від повної відсутності куп (модель tiny) до існування лише глобальної (моделі flat чи huge). Адресація в локальній купі здійснюється лише за допомогою ближнього вказівника, оскільки адреса сегмента, в якому розміщена купа, зберігається в регістрі DS. Використання далекого вказівника можливе (помилку виправить компілятор), але не виправдане.

    Адресація в глобальній купі може здійснюватись як через ближні так і через далекі вказівники (в окремих випадках при потребі компілятор самостійно може перевести вказівник з класу ближніх в клас далеких).






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.