20. Командная строка препроцессора, понятие директивы, назначение и принцип работы основных директив
работы основных директив (define, include, ifndef).
Last updated
работы основных директив (define, include, ifndef).
Last updated
Директивы препроцессора - инструкции выполняемые до компиляции программы. Позволяют изменить текст программы, например, заменить некоторые слова, добавить информацию из файла. Все директивы препроцессора начинаются со знака #. После директив препроцессора точка с запятой не ставятся
Директива #include включает в текст программы содержимое указанного файла. Эта директива имеет две формы:#include "имя файла"#include <имя файла>
Если имя файла указано в кавычках, то поиск файла осуществляется в соответствии с заданным маршрутом или в текущем каталоге. Если имя файла задано в угловых скобках, то поиск файла производится в стандартных директориях операционной системы
Директива #define служит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами (макросами).Идентификаторы, заменяющие текстовые или числовые константы, называют именованными константами или объектными макросами.#define идентификатор текст#define TWO 2
Идентификаторы, заменяющие фрагменты программ, называют макроопределениями или функциональными макросами, причем они могут иметь аргументы.#define идентификатор(список параметров) текст#define SQUARE(X) X*X
Эта директива заменяет все последующие вхождения идентификатора на текст. Такой процесс называется макроподстановкой или расширением. Текст может представлять собой любой фрагмент программы на СИ, а также может и отсутствовать. В последнем случае все экземпляры идентификатора удаляются из программы.
Директивы #if или #ifdef/#ifndef вместе с директивами #elif, #else и #endif управляют компиляцией частей исходного файла. Если указанное выражение после #if имеет ненулевое значение, в записи преобразования сохраняется группа строк, следующая сразу за директивой #if. Синтаксис условной директивы следующий: