Класи пам'яті даних Клас пам'яті, час існування та видимість об'єкта


НазваКласи пам'яті даних Клас пам'яті, час існування та видимість об'єкта
Дата конвертації05.05.2013
Розмір444 b.
ТипПрезентации


Класи пам'яті даних


Клас пам'яті, час існування та видимість об'єкта

  • Кожен об’єкт програми (змінна, функція,...) має свій тип і клас пам’яті.

  • Тип визначає обсяг пам’яті для об’єкта і операції, що можуть

  • виконуватись над об’єктом.

  • Клас пам'яті задає місце розташування об'єкта в оперативній пам'яті

  • та встановлює для нього час існування, тобто час, протягом якого

  • об‘єкт зберігається в оперативній пам‘яті, і область видимості, яка

  • визначає ту частину програми, де можна використовувати цей об‘єкт.

  • На відміну від типу, клас пам’яті можна явно не вказувати, тоді він

  • встановлюється компілятором за місцем оголошення об'єкта.

  • За часом існування об‘єкти поділяють на три групи:

    • глобальні (або статичні) – існують протягом усього часу виконання програми;
    • локальні – існують лише при виконанні блоку, де вони оголошені;
    • динамічні – час існування змінюється програмою.


  • Глобальні дані зберігаються в окремій області оперативної пам’яті –

  • сегменті даних. Локальні дані – в області, що називається стеком.

  • Динамічні дані – в області динамічної пам’яті.

  • За правилами замовчування змінні, описані всередині блоку, та

  • формальні параметри функцій мають локальний час існування. Змінні,

  • описані зовні всіх блоків (між функціями) мають глобальний час

  • існування. ( Блоком вважається тіло функції, а також внутрішня

  • група описів у фігурних дужках) Функції в С – програмах можна

  • описувати тільки на зовнішньому рівні, тому всі функції мають

  • глобальний час існування.

  • За областю видимості (або областю дії) об‘єкти ділять на три групи:

    • глобальні – видимі в межах усієї програми;
    • частково глобальні – видимі в межах одного програмного файла;
    • локальні – видимі в блоці, де оголошено даний об‘єкт.


Область дії глобальних і локальних змінних

  • Переважно змінні програми мають локальний час існування та

  • локальну видимість. Глобальними оголошують окремі змінні, призначені

  • для спільного використання. Правила:

  • - змінні зовнішнього рівня (між функціями) є частково глобальними з

  • областю дії від точки оголошення до кінця файла;

  • - змінні внутрішнього рівня (всередені блоку) і формальні параметри

  • функцій мають область дії від точки оголошення до кінця функції (блоку);

  • - змінні- параметри прототипу функції видимі в межах цього прототипу;

  • - якщо ім’я внутрішньої змінної збігається з іменем зовнішнього об’єкта,

  • в межах блоку внутрішня змінна “закриває” зовнішню, а за межами

  • блоку дія зовнішнього об’єкта відновлюється;

  • - клас пам’яті змінних можна встановити явно за допомогою

  • специфікаторів.



  • #include …

  • int n; //частково глобальна змінна

  • int load(int n); //n - локальна для прототипу

  • int main(int a) { //a - локальна для функції

  • int i = 0; //i - локальна для блоку

  • }

  • int load(int a) {

  • int n = 0; //n - ”закриває” зовнішню змінну

  • … // з такою назвою в межах блоку

  • }

  • Всі глобальні та статичні змінні автоматично ініціалізуються нульовими

  • значеннями, а для локальних це не виконується.



Специфікатори класів пам'яті

  • Специфікатори застосовують тільки тоді, коли потрібно змінити стандартний

  • клас пам‘яті об‘єкта, інакше він встановлюється за правилами замовчування.

  • Синтаксис:

  • специфікатор_класу_пам‘яті тип ім‘я_змінної



  • Специфікатори локальних змінних:

    • auto - клас за замовчуванням;
    • register - зберігання змінної у регістрі процесора, дає змогу істотно скоротити час звертання до змінних, за відсутності вільних регістрів змінна буде опрацьовуватись як змінна з класом auto; така змінна не має адреси;
    • static - статичні змінні існуються протягом усього часу виконання програми, проте областю їх дії залишається той блок, у якому вони оголошені;
    • extern - змінна є посиланням на глобальну змінну з тим самим іменем і типом, описану далі в тексті програми або в іншому програмному файлі.
  • Специфікатори глобальних змінних:

    • static - областю дії даної змінної буде частина програми від точки опису до кінця файлу; в інших файлах програми ця змінна недоступна;
    • extern - змінні є посиланнями на відповідні зовнішні змінні та роблять ці змінні видимими (оголошеними) в межах поточного файлу.


Схожі:

Класи пам\Переваги використання динамічної пам'яті: Переваги використання динамічної пам'яті
Виділення пам'яті лише на час опрацювання цих даних, потім звільнення для інших потреб
Класи пам\Основні процеси пам`яті запам`ятовування зберігання відтворення забування види пам`яті
Щоб піднятися дитині на вищий рівень розвитку, не зупинитися в розвитку, вона повинна засвоювати про навколишній світ, оволодівати...
Класи пам\Записи План Опис типу “запис” (record)
Запис (record) це структурований тип даних, призначений для зберігання в оперативній пам'яті й опрацювання даних про властивості...
Класи пам\Лекція 7 Керування оперативною пам'яттю
Витіснення процесів з оперативної пам'яті на диск і повернення їх в оперативну пам'ять (віртуальна пам’ять)
Класи пам\Тема Основні класи сучасних паралельних комп'ютерів Викладач: д т. н., проф. Саченко А. О
...
Класи пам\Пристрої обробки та зберігання даних Властивості пам’яті
Внутрішня швидкодіюча електронна пам'ять, розміщена на материнській платі, використовується для у процесі обробки інформації
Класи пам\Організація даних у зовнішній пам’яті

Класи пам\Вид пам’яті Час зберігання інформації

Класи пам\Пам’ять пк пам’ять пк
Різні слова інформації (команди та дані) розрізняються за способом використання, але не за способом кодування та структурою представлення...
Класи пам\Наш клас ссзш №264 2008 рік Музей “Пам’яті Чорнобиля”


Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка