1.1.6. Препроцессор. Назначение и возможности
Препроцессор – это программа, которая обрабатывает код до его компиляции (в частности, удаляет из текста комментарии). На этом этапе можно включить в компилируемый файл другие файлы, определить символические константы и макросы, задать режим условной компиляции программного кода и условного выполнения директив препроцессора. Все директивы начинаются с символа #, и до начала директивы в строке могут находиться только символы пробела.
Директивы препроцессора:
#include <имя файла>
Включает копию файла в то место, где находится эта директива. Если имя файла заключено в угловые скобки, то просматривается заданный системой программирования список каталогов. Этот способ используется для включения в программу заголовочных файлов стандартной библиотеки. Если имя файла заключено в кавычки, препроцессор сначала ищет его в том каталоге, где находится компилируемый файл, а затем продолжает поиск первым способом. Так можно добавить пользовательские файлы.
#define идентификатор замещающий_текст
После появления этой строки в файле все встретившиеся далее в тексте программы имена, совпавшие с идентификатором, будут заменены на замещающий текст. Эта директива также позволяет определять макросы – задавать символическое имя для некоторых операций. Если макрос имеет параметры, то сначала в замещающий текст подставляются значения параметров, а затем этот расширенный макрос подставляется в текст вместо идентификатора макроса и списка его параметров. Пример:
#define RECTANGLE_AREA(x,y) ((x)*(y))
Оператор
area = RECTANGLE_AREA(3,4);
примет вид:
area = ((3)*(4));
Для переноса на следующую строку в директиве используется знак \.
Условная компиляция даёт программисту возможность управлять выполнением директив препроцессора и компиляцией программного кода. Каждая условная директива препроцессора (#if) вычисляет значение целочисленного константного выражения. Пример:
#if !defined(NULL)
#define NULL 0
#endif
Эта директива определяет, была ли определена ранее константа NULL. Если нет, то производится её определение. Между директивами #if и #endif могут находиться и операторы программы, что позволяет задать условие их компиляции.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.