Описание тега c-preprocessor

Текстовый макропроцессор, применяемый до компиляции программ на языках C и C++. Этот тег также можно использовать для вопросов о других компиляторах / языках, производных от или имеющих идентичные функции, таких как #directives в Objective-C или C#.

В языках программирования C и C++ есть подготовительная фаза перед правильной компиляцией, называемая предварительной обработкой, которая обеспечивает возможность текстового включения файлов заголовков, рекурсивных расширений макросов, условной компиляции, использования различных констант, не определенных ни в источнике, ни в самом языке, и линейный контроль.

Этот шаг может быть представлен как отдельный исполняемый файл, традиционно называемый cpp. Правила предварительной обработки для C немного отличаются от C++; но общие коллекции компиляторов, такие как gcc и clang на основе LLVM, используют один препроцессор для обоих языков, который можно настроить для выбора соответствующего набора правил.

Ресурсы

GNU CPP онлайн руководство описывает синтаксис и использование реализации GNU препроцессора.

В проекте предопределенных макросов компилятора C/C++ перечислены предопределенные макросы компилятора, которые можно использовать для определения стандартов, компиляторов, операционных систем и аппаратных архитектур во время компиляции.

Microsoft C# компилятор не имеет отдельного препроцессора, но имеет аналогичные директивы и действует так, как будто это было сделано.