- Триграф (языки си)
-
Триграф (языки си)
Триграф (в семействе языков Си) — последовательность из трёх символов, первые два из которых — вопросительные знаки, а третий указывает на значение триграфа.
Содержание
Таблица триграфов
Триграф Эквивалентный символ ??= # ??/ \ ??' ^ ??( [ ??) ] ??! | ??< { ??> } ??- ~ Комбинация трёх вопросительных знаков (???) не является триграфом.
В реальности триграфы практически не используются, некоторые компиляторы даже выдают предупреждение, когда обрабатывают триграф.
Причина появления
Причина появления триграфов такова. Семибитная кодовая страница ISO/IEC 646, принятая в 1972 году и основанная на ASCII, отводила некоторые позиции (
#$@[\]^`{|}~
) под национальные символы (дополнительные буквы и символы валют). Например, код{ a[i]='\n'; }
немцы могли видеть какä aÄiÜ='Ön'; ü
. Чтобы помочь с отсутствующими скобками, и были введены триграфы.В Паскале с этой же целью используются диграфы:
(. .) (* *)
вместо[] {}
.Ловушка
Примеры неожиданного поведения при обработке триграфов:
// Will the next line be executed????????????????/ a++;
(a++ будет воспринято как комментарий, так как ??/ будет проинтерпретирован как '\' в конце строки и продлит комментарий на следующу строку)
/??/ * A comment *??/ /
(комментарий, после обработки триграфов и маскированных переводов строк выглядит как
/* A comment */
)Пример программы
??=include <stdio.h> /* # */ int main(void) ??< /* { */ char n??(5??); /* [ and ] */ n??(4??) = '0' - (??-0 ??' 1 ??! 2); /* ~, ^ and | */ printf("%c??/n", n??(4??)"); /* ??/ = \ */ return 0; ??>
См. также
Wikimedia Foundation. 2010.
Триграф (языки Cи) — У этого термина существуют и другие значения, см. Триграф. Триграф (в семействе языков Си) последовательность из трёх символов, первые два из которых вопросительные знаки, а третий указывает на значение триграфа. Содержание 1 Таблица… … Википедия
Триграф (языки Си) — У этого термина существуют и другие значения, см. Триграф. Триграф (в семействе языков Си) последовательность из трёх символов, первые два из которых вопросительные знаки, а третий указывает на значение триграфа. Содержание 1 Таблица… … Википедия
Триграф — Триграф: Триграф в орфографии см.: «Триграф (орфография)» Триграф в языке Си см.: «Триграф (языки си)» … Википедия
Триграф (орфография) — У этого термина существуют и другие значения, см. Триграф. Триграф (от др. греч. τρι «три » и γράφω «пишу») составной письменный знак, состоящий из трёх букв и употребляющийся для обозначения на письме фонем и их основных вариантов:… … Википедия
Диграф (программирование) — У этого термина существуют и другие значения, см. Диграф. Диграфы двузнаковые последовательности, используемые для указания одного определенного символа, который не может быть задан напрямую с клавиатуры по разным причинам: устаревшая клавиатура … Википедия
Итальянский язык — Самоназвание: italiano, la lingua italiana прослушать (инф.) … Википедия
Итальянский — язык Самоназвание: italiano, lingua italiana прослушать (info) Страны: Италия, Сан Марино, Ватикан, Швейцария, Словения, Хорватия, Франция, Монако, Ливия, Тунис, Эритрея, Эфиопия, Сомали … Википедия