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

Препроцессор — это часть компилятора языка TOIC. Он предназначен для предварительной обработки текста программы. Препроцессор позволяет включать в текст программы дополнительные файлы и вводить макроопределения. Работа препроцессора осуществляется с помощью специальных директив. Они начинаются со знака решетка #.

Основные директивы препроцессора:

Директива #include

Директива #include позволяет включать в текст программы указанный файл. Файл должен находиться в текущем каталоге проекта, либо в одной из папок для поиска, указанных компилятору.

Пример

 #include "mylib.tos"

Директива #define Директива #define позволяет вводить в текст программы константы.

Общая форма записи

#define Идентификатор Замена

Поля Идентификатор и Замена разделяются одним или несколькими пробелами. Директива #define указывает компилятору, что нужно подставить строку, определенную аргументом Замена, вместо каждого аргумента Идентификатор в исходном файле. Идентификатор не заменяется, если он находится в комментарии, в строке или как часть более длинного идентификатора. Ограничения: Заменой может быть только число, имя переменной или литерал. Идентификаторы нельзя объединять.

Пример

#define MAX 3

Условная компиляция

Директивы #if или #ifdef / #ifndef вместе с директивами #elif, #else и #endif управляют компиляцией частей исходного файла. Если указанное выражение после #if имеет ненулевое значение, в записи преобразования сохраняется группа строк, следующая сразу за директивой #if. Синтаксис условной директивы следующий:

#if константное выражение
   группа операций
#elif константное выражение
   группа операций
#else
   группа операций
#endif

У каждой директивы #if в исходном файле должна быть соответствующая закрывающая директива #endif. Между директивами #if и #endif может располагаться любое количество директив #elif, однако допускается не более одной директивы #else. Директива #else, если присутствует, должна быть последней перед директивой #endif.