Основные сведения.
Транслятор Си имеет встроенное средство, расширяющее возможности языка и называемые препроцессором или макропроцессором.
Препроцессор позволяет осуществлять макрообработку, условную компиляцию, включать файлы, текст программы, управлять обработкой ошибок. Первым шагом компилятора является вызов препроцессора. Препроцессор работает подобно текстовому редактору под управлением директив препроцессора, которые кодируются в исходной программе так же, как обычные операторы Си, но препроцессорные директивы отличаются от обычных утверждений по форме. Они не следуют синтаксическим правилам для оператора. Для записи препроцессорных директив существуют свои правила.
Все препроцессорные директивы должны начинаться с символа #
Все препроцессорные директивы должны размещаться в первой колонке программы.
За # сразу же должно идти наименование директивы. В программах на Си используются следующие директивы препроцессора.
#include
#endif
#else
#define
#line
#undef
#fndef
#fdef
#if
#elif
#error и др.
В отличие от операторов в конце (;) не ставится. Директивы не являются операторами языка в традиционном смысле. После работы препроцессора директивы удаляются из текста программы. Директивы могут быть разделены на 3 категории: включение файлов, макроподстановка, управление компиляцией.