[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Строки Си-препроцессора
Все операторы препроцессора - это полные строки. Строки препроцессора
начинаются с # в первой позиции и заканчиваются <NEWLINE> или началом
комментария. Можно соединить несколько строк вместе, набрав обратную
косую черту (\) в конце соединяемых строк.
Зарезервированные препроцессором слова (например, define или include),
обычно - но не обязательно - расположены непосредственно справа от #.
Вставляемые файлы обычно содержат #define-ы для констант и макросов.
Вставляют другие файлы, описания шаблонов структур, объявления extern
для глобальных переменных и объявления функций, возвращающих значение,
отличные от integer. Достаточно часто вставляемые файлы используются
для описания в одном месте структур и параметров, используемых в
нескольких файлах исходных текстов.
В строке #include может быть задано абсолютное или относительное
путевое имя файла. Такой файл называют вставляемым файлом, файлом
заголовка или файлом определений. Обычно имя файла заголовка имеет
расширение .h, хотя препроцессор не выдвигает на этот счет никаких
требований.
     #include "header.h"      файл ищется в директории исходного
                              файла, затем в  стандартной
                              директории     /usr/include
     #include <header.h>      файл ищется только в /usr/include
     #include "/usr/header.h" файл задается путевым именем

Символьные имена в #define часто используются, чтобы сделать программу
более читабельной. Эти имена имеют такую же форму, как Си-
идентификаторы. Чтобы выделить эти имена в тексте, их обычно набирают
заглавными буквами. Область действия имени - от соответствующего
#define до конца файла или до команды #undef, которая делает имя
литеральным.
Макрос имеет форму: #define macro_name(param_1,...,param_n)
token_string. Не должно быть пробела между macro_name и (.
Макросы и символьные имена могут быть определены в терминах ранее
определенных макросов и/или символов. Для макросов также можно сделать
операцию #undefined.
Если SYMBOL дважды определяется с помощью #define без #undef между
ними, то выводится предупреждение "SYMBOL redefined", но сохраняется
последнее определение.