Триграфы это специальные тройки символов вида ??x, которые заменяют некоторые спецсимволы Не помню кто мне кидал примерчик: Code: int i; // cколько раз выведется hi в stdout??/ for( i=0; i<10; i++ ) printf("hi\n"); на самом деле ??/ означает символ \ поэтому цикл for попадает в продолжение комментария и hi выведется один раз. Другой пример: ??=define HELLO аналогично #define HELLO (??= заменяется на #) Great: тема выделилась из "[c/c++] Новичкам: задаем вопросы"
Code: scrat@scrat:~$ gcc -o omg omg.c omg.c:5:56: warning: trigraph ??/ ignored, use -trigraphs to enable scrat@scrat:~$ ./omg hi hi hi hi hi hi hi hi hi hi scrat@scrat:~$ gcc -trigraphs -o omg omg.c scrat@scrat:~$ ./omg hi
Если вдруг кому понадобяться: Code: [B]Диграфы:[/B] <% { %> } <: [ :> ] %: # %:%: ## [B]Триграфы:[/B] ??= # ??( [ ??< { ??/ \ ??) ] ??> } ??' ^ ??! | ??- ~ ??? ?
всё зависит от способа компеляции.но если учитывать триграф то цикл попадает в комментарий и _Great_ прав. dmc это компилер c и c++ от Digital Mars по ходу компилер реал корявый!
Не все компиляторы соблюдают стандарт и практически у всех (если, вообще не у всех) компиляторов есть свои косяки. Msvc в принципе далек от слова "стандарт", однако триграфы он понимает
У них раньше была таблица сравнения их языка D с существующими. После прочтения решил никогда не юзать язык D, т.к. такой брехни, как в таблице, никогда не видел.
Эта таблица которая сравнивала D и С и яву? Которая была на ксакепе? (и которой не было на официальном сайте) PS http://img518.imageshack.us/img518/6048/57665526nb5.jpg PPS я думаю вы с грейтом знаете, для чего на самом деле нужны триграфы. На*** тогда писать про вещи, вероятность встречи с которыми практически равна нулю? Конечно только если вы не участвуете в соревнованиях типа "кто напишет самый нечитабельный код"
Чувак спросил что это такое ) А так.. я смысла в них не вижу. Только чтобы оставлять намеренные "ошибки" в коде сплоитов например (защита)
Ну а сейчас необходимость уже отпала. Ладно, закрываю тему. Обсудили и хватит) Что это, зачем нужно и с чем его едят.