Триграф (языки Си)Триграф (в семействе языков Си) (англ. trigraph) — последовательность из трёх символов, первые два из которых — вопросительные знаки (« Таблица триграфов
Комбинация трёх вопросительных знаков (« В реальности триграфы практически не используются. Некоторые компиляторы (например, gcc) даже выдают предупреждение при обработке триграфов. ИсторияПричина появления триграфов заключается в том, что семибитный стандарт кодирования символов ISO 646, опубликованный в 1967 году и основанный на ASCII, отводил позиции символов В Паскале с этой же целью используются диграфы: В стандарте C++17 триграфы отменены[1][2]. Обещают отменить и в Си23. Примеры неожиданного поведенияДалее приведены примеры использования триграфа « // Will the next line be executed????????????????/
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;
??>
См. такжеПримечания
|
Portal di Ensiklopedia Dunia