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 #includes.
- 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
"??:??:??".