Визначення констант за допомогою директиви #deiine

Символьні константи

Літеральні константи

Літеральна константа - це значення, що безпосередньо вводитися в самій програмі. Наприклад, у вираженні

int myAge = 39;

myAge є змінною типу int, а число 39 - літеральною константою. Не можна присвоїти ніяке значення константі 39.

Символьна константа - це константа, представлена ім 'ям (точно так, як і ім 'ям представляється будь-яка змінна). Проте, на відміну від змінної, значення константи, що ініціалізувала, змінити не можна.

Якщо у вашій програмі є одна цілочисельна змінна з ім 'ям students, а інша - з ім 'ям classes, ви могли б вичислити загальну кількість учнів школи за умови, що вам відомо, скільки класів в школі і скільки учнів в шкірному класі (допустимо, кожен клас складається з 15 учнів) :

students = classes * 15;

Примечание:Символ (*) означає множення.

У даному прикладі число 15 є літеральною константою. Але якщо цю літеральну константу замінити символьною, то вашу програму буде легше читати і змінювати в майбутньому:

students = classes * studentsPerClass

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

У мові C++ існує два способи оголошення символьної константи. Традиційний і нині вже застарілий спосіб полягає у використанні директиви препроцесора #define.

Для визначення константи традиційним способом введіть наступне вираження :

####define studentsPerClass 15

Зверніть увагу на ті, що константа studentsPerClass не має ніякого конкретного типу (int, char і так далі). Директива #define виконує просту текстову підстановку. Шкірного разу, коли препроцесор зустрічає слово studentsPerClass, він замінює його літералом 15.

Оскільки препроцесор запускається перед компілятором, останній ніколи не побачить константу, а бачитиме тільки число 15.