trigraphs, триграфы в C/C++ |
Здравствуйте, гость ( Вход | Регистрация )
trigraphs, триграфы в C/C++ |
Andrew Selivanov |
12.10.2007, 11:16
Сообщение
#1
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
Триграфы (trigraphs) это последовательности из трех символов ( из них два первых символа это знаки вопроса ) которые компилятор заменяет на соответствующие символы.
??= # ??( [ ??/ \ ??) ] ??’ ^ ??< { ??! | ??> } ??- ~ Например результат выполнения следующего кода может быть не совсем таким, как ожидалось (в зависимости от компилятора): printf( "Hello world??!\n" ); на консоли: Hello world| Для того, чтобы все стало хорошо код нужно подправить следующим образом: printf( "Hello world?\?!\n" ); И для сомневающихся предлагается такая программка (все собирается и работает): ??=include <iostream> using namespace std; int main() ??< cout << "??/nHello World??/n" << endl; return 0; ??> По умолчанию триграфы отключены в GCC, параметр для включения: -ansi -trigraph Andrew Selivanov (at) gmail.com для crossplatform.ru |
|
|
ViGOur |
12.10.2007, 11:24
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Мда, век живи, век учись, не знал об этом...
А какая смысловая нагрузка в них непонятно! |
|
|
deninok |
28.12.2007, 23:42
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 28.12.2007 Пользователь №: 58 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата(ViGOur) А какая смысловая нагрузка в них непонятно! Смысловая нагрузка такая, что на клавиатуре пользователя может не быть некоторых привычных для нас символов. Конечно, для подавляющего большинства пользователей триграфы совершенно не нужны... |
|
|
Текстовая версия | Сейчас: 23.12.2024, 0:13 |