Поделиться через


Директивы препроцессора

Директивы препроцессора, такие как #define и #ifdef, обычно используются для того, чтобы облегчить изменение исходного кода программ и их компиляцию в разных средах выполнения. Директивы в файле исходного кода позволяют препроцессору выполнять определенные действия. Например, препроцессор может заменять токены в тексте, вставлять содержимое других файлов в файл исходного кода или отключать компиляцию части файла путем удаления разделов текста. Строки препроцессора распознаются и выполняются до расширения макросов. Поэтому если макрос разворачивается в нечто, похожее на команду препроцессора, эта команда не распознается препроцессором.

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

Препроцессор распознает следующие директивы:

#define

#error

#import

#undef

#elif

#if

#include

#using

#else

#ifdef

#line

#endif

#ifndef

#pragma

 

Знак решетки (#) должен быть первым непробельным символом в строке, содержащей директиву; между знаком решетки и первой буквой директивы пробельные символы допускаются. Некоторые директивы содержат аргументы или значения. Любой текст, следующий после директивы (за исключением аргумента или значения, представляющих собой часть директивы), должен предваряться разделителем однострочного комментария (//) или заключаться в разделители комментариев (/* */). Строки, содержащие директивы препроцессора, можно продолжать, ставя непосредственно перед маркером конца строки обратную косую черту (\).

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

См. также

Ссылки

Операторы препроцессора

Предустановленный макрос

Другие ресурсы

Справочник по препроцессору C/C++