Trigraphs
Zdroj znakovou sadu programů c zdroje je obsažen v 7bitové znakové sady ASCII, ale je nadmnožinou ISO 646-1983 Invariant sadu kódů.Trigraph sekvence umožňují c programy k zápisu pomocí pouze ISO (International Standards Organization) výchozí kód sady.Trigraphs jsou sekvence tři znaky (zavedeno ve dvou po sobě jdoucích otazníky), kompilátor nahradí jejich odpovídající znaky interpunkce.Trigraphs můžete použít v c zdrojové soubory s znakovou sadu, která neobsahuje vhodné grafického znázornění pro některá interpunkční znaménka.
Následující tabulka obsahuje devět trigraph sekvencí.Všechny výskyty ve zdrojovém souboru znaků interpunkce v prvním sloupci budou nahrazeny odpovídající znak v druhém sloupci.
Trigraph sekvence
Trigraph |
Znak interpunkce |
---|---|
??= |
# |
??( |
[ |
??/ |
\ |
??) |
] |
??' |
^ |
??< |
{ |
??! |
| |
??> |
} |
??- |
~ |
Trigraph je vždy považovány za znak jediného zdroje.První Probíhá překlad trigraphs fáze překladu, před rozpoznávání znaků escape řetězec literálů a konstant znaků.Jsou uznány pouze devět trigraphs, které jsou uvedeny v tabulce.Untranslated všechny znakové sekvence jsou doleva.
Znak escape sekvence, \?, zabrání špatného trigraph like znakové sekvence.(Informace o sekvence escape, Sekvence Escape.) Například pokud se pokusíte vytisknout řetězec What??! s tímto printf prohlášení
printf( "What??!\n" );
řetězec tisku je What| protože ??! trigraph posloupnost, která je nahrazena |znak.Zápis prohlášení takto správně vytisknout řetězec:
printf( "What?\?!\n" );
V tomto printf prohlášení, znak escape zpětného lomítka u druhého otazník zabraňuje špatného vyhodnocení ??! jako trigraph.