НОУ ІНТУІТ, Лекція, Препроцесор мови С

Теоретична частина

Препроцесор(англ.preprocessor) - програма, що виконує попередню обробку вхідних даних для іншої програми [19.1]. Препроцесор мови програмуванняСпереглядає програму до компілятора та замінює у програмі певні поєднання символів (символічні абревіатури) на відповідні директиви. Він шукає і підключає до програми необхідні файли і може змінити умови компіляції [19.1]. Препроцесор має той самий сенс, як і буферний процесор .

Препроцесор мовиСвиконує макропідстановку, умовну компіляцію та включення іменованих файлів. Рядки, що починаються зі знака # (перед якими дозволені символи порожнього простору), задають препроцесор інструкції-директиви. Їхній синтаксис не залежить від решти мови; вони можуть фігурувати будь-де і впливати (незалежно від області дії) аж до кінця одиниці трансляції. Кордони рядків беруться до уваги: ​​кожен рядок аналізується окремо (але є можливість і зчеплювати рядки). Лексемами для препроцесора є всі лексеми мови та послідовність символів, що задають імена файлів. Крім того, будь-який символ, не визначений іншим способом, також сприймається як лексема [19.2]. Вплив символів порожнього простору, що відрізняються від пробілів та горизонтальних табуляцій, усередині рядків препроцесора не визначено.

У попередніх лабораторних роботах вже траплялися рядки з початковим символом #. Це #include та #define. Перша директива (інструкція) використовувалася для підключення заголовних файлів, насамперед із бібліотеки мовиС, а друга – для підстановки символів чи чисел у певні місця програмного коду.

Єнаступні директиви препроцесора:

#define#endif# ifdef#line
#elif#error#ifndef# pragma
#else#if#include#undef

Кожна директива препроцесора має займати окремий рядок. Наприклад, рядок