Час життя змінної (глобальної або локальної) визначається за наступними правилами.
- Змінна, оголошена глобально (тобто поза всіма блоками), існує протягом всього часу виконання програми.
- Локальні змінні (тобто оголошені усередині блоку) з класом пам’яті register або auto, мають час життя тільки на період виконання того блоку, в якому вони оголошені. Якщо локальна змінна оголошена з класом пам’яті static або extern, то вона має час життя на період виконання всієї програми.
Видимість змінних і функцій в програмі визначається наступними правилами.
- Змінна, оголошена або визначена глобально, видима від крапки оголошення або визначення до кінця початкового файлу. Можна зробити змінну видимої і в інших початкових файлах, для чого в цих файлах слід її оголосити з класом пам’яті extern.
- Змінна, оголошена або визначена локально, видима від крапки оголошення або визначення до кінця поточного блоку. Така змінна називається локальною.
- Змінні з охоплюючих блоків, включаючи змінні оголошені на глобальному рівні, видимі у внутрішніх блоках. Цю видимість називають вкладеною. Якщо змінна, оголошена усередині блоку, має те ж ім’я, що і змінна, оголошена в охоплюючому блоці, то це різні змінні, і змінна з охоплюючого блоку у внутрішньому блоці буде невидимою.
- Функції з класом пам’яті static видимі тільки в початковому файлі, в якому вони визначені. Всякі інші функції видимі у всій програмі.
Мітки у функціях видимі впродовж всієї функції.
Імена формальних параметрів, оголошені в списку параметрів прототипу функції, видимі тільки від точки оголошення параметра до кінця оголошення функції.
Коментарі