4.13 Директивы препроцессора
См. Implementation-defined behavior в The C Preprocessor, для подробностей об этих аспектах реализации.
- Местоположения внутри директивы
#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).См. Pragmas в The C Preprocessor, для подробностей о плейсах, принимаемых GCC на всех целевых платформах. См. Pragmas Accepted by GCC, для подробностей о целевых плейсах.
- Определения для
__DATE__и__TIME__соответственно, когда нет доступной даты и времени перевода (C90 6.8.8, C99 6.10.8, C11 6.10.8.1).
Далее: Реализация функций библиотеки, Предыдущее: Реализация операторов, Вверх: Реализация языка C [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/Preprocessing-directives-implementation.html