Unix Man (Справочное руководство)


CPP(1) - часть 3


Чтобы проверить, определено ли хотя бы одно из двух имен, foo и fum, следует воспользоваться директивой

#if defined(foo) defined(fum)

#elif константное_выражение Допускается произвольное число директив #elif между #if, #ifdef, #ifndef с одной стороны и #else или #endif с другой. Следующие после #elif строки копируются в выходной файл, если проверка предшествующих условий дала результат "ложь" (0), а значение константного_выражения оказалось отличным от нуля. В этом случае последующие директивы #elif и #else игнорируются. После #elif допускаются те же константные_выражения, что и после #if. #else Следующие после #else строки копируются в выходной файл, если проверка предшествующих условий дала результат "ложь" (0). После #else запрещается располагать другие лексемы.

Условные директивы и необязательные директивы #else могут быть вложены.

ФАЙЛЫ

INCDIR Стандартный список каталогов для поиска включаемых файлов, обычно /usr/include. LIBDIR Обычно это /lib.

СМ. ТАКЖЕ


, , .

ДИАГНОСТИКА


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

ПРИМЕЧАНИЯ


Когда в списке аргументов раскрываемых макроопределений встречались символы перевода строки, предыдущие версии cpp, раскрывая макроопределения, эти символы подставляли. Текущая версия cpp заменяет символы перевода строки на пробелы, чтобы смягчить проблемы, с которыми сталкивались предыдущие версии.

Неподдерживаемая опция -W позволяет использовать директивы #class. Если такая директива встретилась в файле, cpp, выполнив другие директивы, завершается с кодом 27. Опция задумана для реализации классов в языке C.

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

#include <file.h>

следует предпочесть явному указанию полного имени:

#include "/usr/include/file.h"

В случае использования полных имен cpp выдает предупреждения.




Начало  Назад  Вперед