Next: Library functions implementation, Previous: Qualifiers implementation, Up: C Implementation

### 4.11 Preprocessing directives

- How sequences in both forms of header names are mapped to headers or external source file names (6.4.7).
- Whether the value of a character constant in a constant expression that controls conditional inclusion matches the value of the same character constant in the execution character set (6.10.1).
- Whether the value of a single-character character constant in a constant expression that controls conditional inclusion may have a negative value (6.10.1).
- The places that are searched for an included <> delimited header, and how the places are specified or the header is identified (6.10.2).
- How the named source file is searched for in an included ""delimited header (6.10.2).
- The method by which preprocessing tokens (possibly resulting from macro expansion) in a `#include` directive are combined into a header name (6.10.2).
- The nesting limit for `#include` processing (6.10.2).

  GCC imposes a limit of 200 nested `#include`s.

- Whether the # operator inserts a \ character before the \ character that begins a universal character name in a character constant or string literal (6.10.3.2).
- The behavior on each recognized non-`STDC #pragma` directive (6.10.6).
- The definitions for `__DATE__` and `__TIME__` when respectively, the date and time of translation are not available (6.10.8).

  If the date and time are not available, `__DATE__` expands to `"??? ?? ????"` and `__TIME__` expands to `"??:??:??"`.