3. Типи змінних

Глобальні змінні є глобальними й доступні будь-яким функціям. Вони визначаються поза функціями.
Однак, якщо опис глобальних змінних передував певній функції, то він може бути опущений. Таким чином, опис глобальних змінних діє на всі функції, які розташовані нижче. Як і для статичних змінних, ініціалізація зовнішніх змінних відбувається один раз під час компіляції. По умовчуванню привласнюється значення нуль.
Статичні й глобальні змінні розміщаються в сегменті даних. Якщо програми складається з декількох файлів, то дія статичних змінних поширюється лише на один файл, де вони описані. 

Зовнішні змінні діють у межах декількох файлів, але їх описи повинні бути продубльовані.
У міру можливості слід уникати використання в програмах глобальних змінних. Однак якщо ваша програма повинна використовувати глобальну змінну, то може трапитися, що ім'я глобальної змінної конфліктує з іменем локальної змінної. При виникненні такого конфлікту C++ надає пріоритет локальної змінної. Інакше кажучи, програма припускає, що у випадку конфлікту кожне посилання на ім'я відповідає локальної змінної.

Автоматичні змінні

 Описуються в блоці таким чином { auto int a=123;

auto char b;

auto float c=45.28; }

Реєстрові змінні

Можуть розміщатися як в оперативній пам'яті, так і в регістрах. Використання регістрів зменшує кількість пересилань і прискорює виконання програми. Тому можливе використання реєстрових змінних, опис яких має вигляд

{register int x=2; }

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

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

Як видне, автоматичні й реєстрові змінні мають локальний характер, тому їх розміщають у сегменті стека.

Статистичні змінні 

Задаються описом

{ static int а;

static float b=3.15; }

Як і для автоматичних, область дії статичних змінних є блоком. Відрізняються вони від автоматичних тим, що після виходу із блоку їх значення зберігається. Воно буде початковим при наступному вході в цей блок.
Глобальні змінні
Глобальні змінні є глобальними й доступні будь-яким функціям. Вони визначаються поза функціями.
Однак, якщо опис глобальних змінних передував певній функції, то він може бути опущений. Таким чином, опис глобальних змінних діє на всі функції, які розташовані нижче. Як і для статичних змінних, ініціалізація зовнішніх змінних відбувається один раз під час компіляції. За замовчуванням привласнюється значення нуль.
У міру можливості слід уникати використання в програмах глобальних змінних. Однак якщо ваша програма повинна використовувати глобальну змінну, то може трапитися, що ім'я глобальної змінної конфліктує з іменем локальної змінної. При виникненні такого конфлікту C++ надає пріоритет локальної змінної. Інакше кажучи, програма припускає, що у випадку конфлікту, кожне посилання на ім'я відповідає локальній змінній.

Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0