logo search
volkov / C++ / Бьерн Страуструп-Справочное руководство по С++

R.16.4 Включение файлов

Управляющая строка вида:

#include <имяфайла>

приводит к замене данной строки на содержимое файла с указанным именем.

Поиск указанного файла проходит в определенной последовательности

частей архива системы и определяется реализацией.

Аналогично, управляющая строка вида:

#include "имяфайла"

приводит к замене данной строки на содержимое файла с указанным

именем. Поиск этого файла начинается в особых (системных) частях

архива, указанных в начале последовательности поиска. Если там он

не найден, то поиск файла идет по всей последовательности, как если бы

управляющая строка имела вид:

#include <имяфайла>

В имени файла, ограниченном символами < и > нельзя использовать

символы конца строки или >. Если в таком имени появится один из

символов ', \, или ", а также последовательность символов /* или //,

то результат считается неопределенным.

В имени файла, ограниченном парой символов " нельзя использовать

символы конца строки или ", хотя символ > допустим. Если в таком

имени появится символ ' или \ или последовательность /* или //,

то результат считается неопределенным.

Если команда

#include строка-лексем

имеет вид, соответствующий ни первой, ни второй управляющей строке,

то лексемы препроцессора, заданные в этой команде обрабатываются как

обычный текст. В результате должна получиться команда, вид которой

соответствует одному из приведенных. Она и будет выполнена как положено.

Команда #include может быть в файле, который сам появился в

результате выполнения другой команды #include.

Реализация может накладывать ограничение на глубину вложенности

команды #include во входных файлах программы, которые приходится

читать для выполнения первоначальной команды #include в одном из

входных файлов.