Всего на сайте:
282 тыс. 988 статей

Главная | Механика

Файл1 файл2. int i; int i=5; … Змінна вважається оголошеною на зовнішньому рівні,..  Просмотрен 442

int i; int i=5;

Змінна вважається оголошеною на зовнішньому рівні, якщо вона знаходиться в тексті програми за межами функції. Якщо змінна описана всередині функції, то вважається, що вона визначена на внутрішньому рівні. Функція може бути визначена лише на зовнішньому рівні, але оголошена й на внутрішньому:

Main()

{ …

{

Float f(int,int);

i++;

…};

};

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

…..

Void f(void)

{

i++;

}

int i=5;

Main()

{

i++;

}

У функції f змінна і недоступна. Щоб вона була доступною, необхідно розширити область дії змінної шляхом її оголошення перед функцією f: int i;

Змінна, оголошена на внутрішньому рівні, має локальний час життя та область дії від точки визначення до кінця блоку. За межами блоку, де вона не визначена, змінна недоступна.

Оголошення функції можливе й на внутрішньому рівні. Тоді область дії функції поширюється від точки визначення до кінця файла.

 

6.8. Класи пам'яті

 

Існує чотири специфікації класів пам'яті:

a register;

a auto;

a static;

a extern.

Специфікатори класу пам'яті можуть впливати на час життя та область дії програмних об'єктів. Специфікатор класу пам'яті registerдозволяє розміщувати відповідну змінну (типу int) у регістрах мікропроцесора. Якщо місця там немає, то відповідна специфікація ігнорується і змінна вважається автоматичною, тобто має клас пам'яті auto.Клас пам'яті autoможе бути випущеним. Будь-яка змінна вважається автоматичною за умовчанням, локальна змінна записується в стек. Специфікатор класу пам'яті static, що застосовується до зовнішнього об'єкта – змінної чи функції, – обмежує область дії лише вихідним файлом. Відповідний специфікатор може застосовуватись і до внутрішніх об’єктів. Це дає можливість вплинути на час життя відповідної змінної – він стає глобальним. Наприклад:

{

Предыдущая статья:Оголошення та визначення Следующая статья:Файл1 файл2. extern int i; int i=5; Зауважимо, що при визначенні змінної допускаєт..
page speed (0.0336 sec, direct)