Директиви макропідстановок у C++ дозволяють виконувати текстову обробку на етапі компіляції за допомогою препроцесора. Основний інструмент — директива #define. Вона використовується для створення макросів, які замінюються текстовим шаблоном до початку компіляції.
1. Проста підстановка
Директива #define створює текстову заміну.
2. Макроси з параметрами
Директиви можуть використовувати параметри, що дозволяє створювати прості функції.
3. Умовні макроси
Для активації або деактивації частин коду можна використовувати умовні директиви.
4. Захист від багаторазового включення (Include Guards)
Захищає заголовні файли від багаторазового включення.
5. Об’єднання та розширення макросів
Об'єднання (##) дозволяє об'єднувати імена.
Розширення (#) додає лапки навколо аргументу.
7. Видалення макросів
Для видалення макросу використовується #undef.
8. Переваги та недоліки макросів
Переваги:
Простота використання.
Прискорення компіляції.
Гнучкість для умовного компілювання та створення шаблонів.
Недоліки:
Відсутність типів (на відміну від функцій).
Можливі помилки через текстову заміну (наприклад, відсутність дужок у макросах з виразами).
Ускладнення відлагодження (препроцесорний код важко відстежувати).
Для більшої надійності рекомендується використовувати const, inline функції та шаблони замість макросів там, де це можливо.


