Директивы препроцессора
Директивы препроцессора, такие как #define
и #ifdef
, как правило, используются для упрощения изменения и упрощения компиляции исходных программ в разных средах выполнения. Директивы в исходном файле сообщают препроцессору выполнять определенные действия. Например, препроцессор может заменять токены в тексте, вставлять содержимое других файлов в файл исходного кода или отключать компиляцию части файла путем удаления разделов текста. Строки препроцессора распознаются и выполняются до расширения макросов. Таким образом, если макрос расширяется в то, что выглядит как команда препроцессора, она не распознается препроцессором.
Инструкции препроцессора используют тот же набор символов, что и инструкции исходного файла, за исключением того, что escape-последовательности не поддерживаются. Набор символов в операторах препроцессора совпадает с кодировкой выполнения. Препроцессор также распознает отрицательные значения символов.
Препроцессор распознает следующие директивы:
Знак номера (#
) должен быть первым нехитовый символ в строке, содержащей директиву. Символы пробелов могут отображаться между знаком номера и первой буквой директивы. Некоторые директивы содержат аргументы или значения. Любой текст, следующий за директивой (кроме аргумента или значения, который является частью директивы), должен предшествовать одно строковый комментарий разделителя (//
) или заключен в разделители комментариев (/* */
). Строки, содержащие директивы препроцессора, можно продолжить сразу перед маркером конца строки с обратной косой чертой (\
).
Директивы препроцессора могут отображаться в любом месте исходного файла, но они применяются только к остальной части исходного файла после их появления.
См. также
Операторы препроцессора
Предустановленные макросы
Справочник по препроцессору c/c++