НОУ ІНТУІТ, Лекція, Препроцесор мови С
Теоретична частина
Препроцесор(англ.preprocessor) - програма, що виконує попередню обробку вхідних даних для іншої програми [19.1]. Препроцесор мови програмуванняСпереглядає програму до компілятора та замінює у програмі певні поєднання символів (символічні абревіатури) на відповідні директиви. Він шукає і підключає до програми необхідні файли і може змінити умови компіляції [19.1]. Препроцесор має той самий сенс, як і буферний процесор .
Препроцесор мовиСвиконує макропідстановку, умовну компіляцію та включення іменованих файлів. Рядки, що починаються зі знака # (перед якими дозволені символи порожнього простору), задають препроцесор інструкції-директиви. Їхній синтаксис не залежить від решти мови; вони можуть фігурувати будь-де і впливати (незалежно від області дії) аж до кінця одиниці трансляції. Кордони рядків беруться до уваги: кожен рядок аналізується окремо (але є можливість і зчеплювати рядки). Лексемами для препроцесора є всі лексеми мови та послідовність символів, що задають імена файлів. Крім того, будь-який символ, не визначений іншим способом, також сприймається як лексема [19.2]. Вплив символів порожнього простору, що відрізняються від пробілів та горизонтальних табуляцій, усередині рядків препроцесора не визначено.
У попередніх лабораторних роботах вже траплялися рядки з початковим символом #. Це #include та #define. Перша директива (інструкція) використовувалася для підключення заголовних файлів, насамперед із бібліотеки мовиС, а друга – для підстановки символів чи чисел у певні місця програмного коду.
Єнаступні директиви препроцесора:
| #define | #endif | # ifdef | #line |
| #elif | #error | #ifndef | # pragma |
| #else | #if | #include | #undef |
Кожна директива препроцесора має займати окремий рядок. Наприклад, рядок