Описание тега c-preprocessor
В языках программирования C и C++ есть подготовительная фаза перед правильной компиляцией, называемая предварительной обработкой, которая обеспечивает возможность текстового включения файлов заголовков, рекурсивных расширений макросов, условной компиляции, использования различных констант, не определенных ни в источнике, ни в самом языке, и линейный контроль.
Этот шаг может быть представлен как отдельный исполняемый файл, традиционно называемый cpp
. Правила предварительной обработки для C немного отличаются от C++; но общие коллекции компиляторов, такие как gcc и clang на основе LLVM, используют один препроцессор для обоих языков, который можно настроить для выбора соответствующего набора правил.
Ресурсы
GNU CPP онлайн руководство описывает синтаксис и использование реализации GNU препроцессора.
В проекте предопределенных макросов компилятора C/C++ перечислены предопределенные макросы компилятора, которые можно использовать для определения стандартов, компиляторов, операционных систем и аппаратных архитектур во время компиляции.
Microsoft C# компилятор не имеет отдельного препроцессора, но имеет аналогичные директивы и действует так, как будто это было сделано.