5.2.1.1 Trigraph sequences
Before any other processing takes place, each occurrence of one of the following sequences of three characters (called trigraph sequences[1]) is replaced with the corresponding single character.
??= ↦ # ??) ↦ ] ??! ↦ |
??( ↦ [ ??’ ↦ ^ ??> ↦ }
??/ ↦ ` :syn-term:??< ↦ {` ??- ↦ ~
No other trigraph sequences exist. Each ? that does not begin one of the trigraphs listed above is not changed.
EXAMPLE 1
??=define arraycheck(a, b) a??(b??) ??!??! b??(a??)
becomes
#define arraycheck(a, b) a[b] || b[a]
EXAMPLE 2 The following source line
printf("Eh???/n");
becomes (after replacement of the trigraph sequence ??/)
printf("Eh?\n");
Footnotes