6.4.7 Header names

Syntax

1

header-name:

< h-char-sequence >

q-char-sequence

h-char-sequence:

h-char

h-char-sequence h-char

h-char:

any member of the source character set except the 

new-line

 character and 

>

q-char-sequence:

q-char

q-char-sequence q-char

q-char:

any member of the source character set except the 

new-line

 character and 

Semantics

2

The sequences in both forms of header names are mapped in an implementation-defined manner to headers or external source file names as specified in 6.10.2.

3

If the characters ', \, ", //, or /* occur in the sequence between the < and > delimiters, the behavior is undefined. Similarly, if the characters ', \, //, or /* occur in the sequence between the " delimiters, the behavior is undefined.[1] Header name preprocessing tokens are recognized only within #include preprocessing directives and in implementation-defined locations within #pragma directives.[2]

4

EXAMPLE The following sequence of characters:

0x3<1/a.h>1e2
#include <1/a.h>
#define const.member@$

forms the following sequence of preprocessing tokens (with each individual preprocessing token delimited by a { on the left and a } on the right).

{0x3}{<}{1}{/}{a}{.}{h}{>}{1e2}
{#}{include} {<1/a.h>}
{#}{define} {const}{.}{member}{@}{$}

Forward References

Footnotes