Жирный бит просто означает, что, если файл, указанный в кавычках, не может быть найден с использованием метода "
, он вернется к методу <>
.
Я должен упомянуть, чтоНемного о том, где он ищет файлы include
, на самом деле неверно.В обоих случаях (кавычки и угловые скобки) местоположения поиска определяются реализацией.
Из раздела lex.header
:
Последовательности в обеих формахИмена заголовков отображаются способом, определяемым реализацией, в заголовки или имена внешних файлов, как указано в 16.2.
Далее следует раздел 16.2
:
Директива #include
должна идентифицировать заголовок или исходный файл, который может быть обработан реализацией.
Директива предварительной обработки вида
# include < h-char-sequence> new-line
ищет последовательность мест, определенных реализацией длязаголовок, однозначно идентифицируемый указанной последовательностью между разделителями <
и >
, и вызывает замену этой директивы всем содержимым заголовка.Способ указания мест или определения заголовка определяется реализацией.
Директива предварительной обработки вида
# include " q-char-sequence" new-line
вызывает замену этой директивы всем содержимым идентифицированного исходного файла.по указанной последовательности между разделителями "
.Именованный исходный файл ищется в соответствии с реализацией.Если этот поиск не поддерживается или поиск не выполняется, директива обрабатывается повторно, как если бы она читала
# include < h-char-sequence> new-line
с идентичной содержащейся последовательностью (включая >
символов, если таковые имеются) из исходной директивы.
Так что утверждение "... tells the compiler to look for the file in directory containing the source file doing the #include ..."
неверно.В обоих случаях все зависит от реализации, как он находит файлы.
Сказав это, все остальное правильно.Если метод, используемый типом "
, не находит заголовок, тогда используется метод, используемый типом <>
.Вот и все, что означает жирный бит.
Вам просто нужно прочитать документацию для вашей конкретной реализации, чтобы увидеть, что это за методы.