4.13 Директивы препроцессора
См. Поведение, определяемое реализацией в документе «Препроцессор C» — там подробно описаны эти аспекты поведения, определяемого реализацией.
- Расположение в директивах
#pragma, в котором распознаются препроцессорные токены имени заголовка (C11 6.4, C11 6.4.7). - Способ сопоставления последовательностей в обеих формах имен заголовков с заголовками или именами внешних исходных файлов (C90 6.1.7, C99 и C11 6.4.7).
- Совпадает ли значение символьной константы в константном выражении, управляющем условным включением, со значением той же символьной константы в наборе символов выполнения (C90 6.8.1, C99 и C11 6.10.1).
- Может ли значение односимвольной символьной константы в константном выражении, управляющем условным включением, быть отрицательным (C90 6.8.1, C99 и C11 6.10.1).
- Места, в которых выполняется поиск заголовка, ограниченного символами ‘<>’, и способ указания этих мест или идентификации заголовка (C90 6.8.2, C99 и C11 6.10.2).
- Способ поиска именованного исходного файла для заголовка, ограниченного символами ‘""’ (C90 6.8.2, C99 и C11 6.10.2).
- Способ объединения препроцессорных токенов (возможно, полученных в результате раскрытия макросов) в директиве
#includeв имя заголовка (C90 6.8.2, C99 и C11 6.10.2). - Ограничение на вложенность при обработке
#include(C90 6.8.2, C99 и C11 6.10.2). - Вставляет ли оператор ‘#’ символ ‘\’ перед символом ‘\’, с которого начинается универсальное имя символа в символьной константе или строковом литерале (C99 и C11 6.10.3.2).
- Поведение при обработке каждой распознанной директивы, отличной от
STDC #pragma(C90 6.8.6, C99 и C11 6.10.6).См. Прагмы в документе «Препроцессор C» — там подробно описаны прагмы, принимаемые GCC на всех целевых платформах. Сведения о прагмах, специфичных для целевых платформ, см. в разделе Прагмы, принимаемые GCC.
- Определения
__DATE__и__TIME__, если соответственно дата и время трансляции недоступны (C90 6.8.8, C99 6.10.8, C11 6.10.8.1).
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Preprocessing-directives-implementation.html