Препроцесор – це спеціальна програма, що опрацьовує текстовий файл програми на С++ перед компіляцією. Він входить як обов’язковий компонент до складу компілятора і / або середовища програмування мови С++. Результатом роботи препроцесора є готовий до компіляції текст програми, в якому реалізовані всі задані директиви (інструкції) попереднього опрацювання програми.
Найчастіше на етапі препроцесорноїї обробки виконують такі дії:
1) включення до складу програми текстів заданих файлів;
2) вилучення з тексту програми тих частин, які не повинні компілюватись у даній реалізації (умовна компіляція);
3) заміна в програмі макроімен на задані вирази підстановки;
4) реалізація макропідстановок (макросів) з параметрами.
Кожна директива препроцесора записується в окремому рядку і починається зі знаку #. Крапка с комою після директив не ставиться.
Директива включення #include
Директива #include призначена для приєднання до програми текстового файлу, ім’я якого задається в цій директиві. Текст файлу вставляється в програму в тому місці, де була записана директива. Директива допускає дві форми запису імен файлів:
#include < ім’я_файлу > // ім’я в кутових дужках
#include “ім’я_файлу ” // ім’я в лапках
Форма запису імені файлу визначає, де відбувається його пошук. Якщо ім’я файлу записане в кутових дужках, то такий файл повинен зберігатись в спеціальному каталозі середовища програмування (цей каталог часто називають INCLUDE) або в іншому визначеному для компілятора каталозі. Якщо ім’я файлу задається в лапках, то більшість компіляторів починають пошук цього файлу починається з поточного активного каталогу. Якщо файл там не знайдено, то пошук продовжується у каталозі, що відповідає варіанту кутових дужок. Здебільшого в кутових дужках вказують імена стандартних заголовних файлів бібліотечних функцій, а в лапках – імена користувацьких файлів, які повинні бути приєднані до даної програми.
Найчастіше в заголовні файли виносять прототипи функцій, шаблони структур, оголошення користувацьких типів, визначення макросів тощо. Сформовані заголовні файли підключають до кожного програмного файлу, що дає змогу автономно компілювати кожен з них. Доцільно також створювати файли включення, в які записувати власні набори функцій, об’єднані за певним призначенням. Файли, що приєднуються директивою #include, можуть містити в своєму тексті інші директиви #include.