Визначення констант за допомогою директиви #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.