Preprocessor
Материал из cppreference.com
< cpp
Препроцессор работает до компиляции. Результат препроцессора - один файл, который передается реальному компилятору.
[править] Директивы
Директивы препроцессора контролируют поведение препроцессора. Каждая директива занимает одну строку и имеет следующий формат:
- символ
# - инструкция препроцессора (одна из
define,undef,include,if,ifdef,ifndef,else,elif,endif,line,error,warning,pragma) - Аргументы (в зависимости от инструкции)
- перевод строки
Нулевая директива (один символ # за которым следует перевод строки) не допускается, и не имеет никакого эффекта.
[править] Возможности
Препроцессор имеет следующие возможности модификации текста кода:
- условная компиляция частей исходного файла (контролируется директивами
#if,#ifdef,#ifndef,#else,#elifи#endif). - производить подстановку и замену текстов макросов, заключать в кавычки и производить конкатенацию (склейку) идентификаторов (управляется директивами
#defineи#undef, и операторы#и##) - включать другие файлы (контролируется
#includeдирективой) - вызвать предупреждение при компиляции (контролируется директивой
#warning) - вызывать ошибку компиляции (контролируется директивой
#error)
Следующими аспектами препроцессора можно управлять
- определяемое реализацией поведение (управляется директивами
#pragma) - имя файла и номер строки (управляется директивами
#line)