Триграф (языки си)

Триграф (языки си)

Триграф (языки си)

Триграф (в семействе языков Си) — последовательность из трёх символов, первые два из которых — вопросительные знаки, а третий указывает на значение триграфа.

Содержание

Таблица триграфов

Триграф Эквивалентный символ
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~

Комбинация трёх вопросительных знаков (???) не является триграфом.

В реальности триграфы практически не используются, некоторые компиляторы даже выдают предупреждение, когда обрабатывают триграф.

Причина появления

Причина появления триграфов такова. Семибитная кодовая страница 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) Страны: Италия, Сан Марино, Ватикан, Швейцария, Словения, Хорватия, Франция, Монако, Ливия, Тунис, Эритрея, Эфиопия, Сомали …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»