Читайте также:
|
|
Розглянемо приклад в мові С:
{ int nA;
int nB;
char cA;
nA = 10;
nB = 20;
nA = nA + nB;
{
int nA;
int nC;
nC = 20;
nA = nB + nC;
}
cA = “A”
nA = int(cA) + nC;
}
Глобальне розрізнення видимості позначень (імен)
Іноді, в разі розгляду об'єктів, що мають одне і теж позначення, необхідно подолати мембранний ефект. Для його виконання у мовах програмування передбачається оператор глобального розрізнення видимості позначень (імен), який має позначення <::>.
static int nV;
main()
{
auto int nV;
nV = 10;
:: nV = 20;
}
Стратегії розподілу пам'яті
Для будь-якої програми, на жаль, доступно обмежену кількість пам'яті, а тому при компіляції та виконанні програми дуже важливу роль відіграє стратегія розподілу пам'яті. На неї, вирішальний вплив мають, як мова програмування, так і операційна система, під управлінням якої виконується програма.
Розглянемо дві стратегії розподілу пам'яті - статичну і динамічну. Остання, у свою чергу, поділяється ще на дві – динамічний розподіл пам'яті на основі блока та динамічний розподіл пам'яті в купі.
Вказані стратегії реалізуються в пам'яті, розподілений наприклад, так, як зображено на рисунку, якщо брати до уваги операційну систему Windows).
Стратегія статичного розподілу пам'яті
Ø зв'язок між ім’ям змінної та генерованим вмістом установлюється один раз і лишається незмінним упродовж усього часу виконання програми;
Ø розподіл пам'яті відбувається до початку виконання програми, під час трансляції або редагування зв'язків, тому не має потреби вставляти у програму жодних додаткових виконуваних операторів;
Ø усі об'єкти в програмі є глобальними, мають глобальний період існування, глобальну область дії;
Ø захоплення та вивільнення пам'яті відбуваються автоматично;
Ø вміст змінної ініціалізується нулем відповідного типу;
Ø пам'ять розміщується в.EXE файлі, займаючи обмежене місце (зазвичай сегмент 64К)
Дата добавления: 2015-10-29; просмотров: 162 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
R, L – вирази | | | Оператори вибору |