Форум программистов, компьютерный форум CyberForum.ru

Что такое триграф? - C++

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.05.2011, 05:35     Что такое триграф? #1
Что такое триграф?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2011, 05:35     Что такое триграф?
Посмотрите здесь:

Что такое 15 - (15/4) *4 ? C++
C++ Код не работает,говорит,что не знает,что такое delay(100).в чём проблема?как сделать,чтоб программа заработала?
C++ Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала
Что такое перегрузка оператора? Что у меня в коде за ошибка? C++
C++ Что такое #, include, что это означает
В этой части кода происходит объявление функций? Что такое void? Что в скобках? C++
C++ Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Runa
 Аватар для Runa
130 / 82 / 3
Регистрация: 28.08.2009
Сообщений: 363
13.05.2011, 05:49     Что такое триграф? #2
никогда не знала о таком явлении, было интересно почитать может тоже кому пригодится

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


значения

??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~


примеры
вот код, а в комментариях приведено как он будет интерпретироваться
C
1
2
3
4
5
6
7
8
9
10
??=include <stdio.h>                         /* #          */
 
int main(void)
??<                                          /* {          */
        char n??(5??);                       /* [ and ]    */
 
        n??(4??) = '0' - (??-0 ??' 1 ??! 2); /* ~, ^ and | */
        printf("%c??/n", n??(4??)");          /* ??/ = \    */
        return 0;
??>
и еще вот
C
1
2
// Will the next line be executed????????????????/
a++;
(a++ будет воспринято как комментарий, так как ??/ будет проинтерпретирован как '\' в конце строки и продлит комментарий на следующу строку)

в итоге будет переведен в
C
1
2
3
4
5
/??/
* A comment *??/
/
 
//(комментарий, после обработки триграфов и маскированных переводов строк выглядит как /* A comment */)
Yandex
Объявления
13.05.2011, 05:49     Что такое триграф?
Ответ Создать тему
Опции темы

Текущее время: 11:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru