#c #gcc
Недавно увидел в одном коде использование символов "<%" в качестве фигурной скобки. Сам убедился, что эти символы работают, но нигде не нашел документации на этот счет. Кто знает, это фича или баг?
Ответы
Ответ 1
Кто знает, это фича или баг? Фича. Это называется alternative tokens (или digraphs - диграфы). Их можно использовать вместо { } [ ] # ##: Диграф: <% %> <: :> %: %:%: Значение: { } [ ] # ## Внутри строковых и символьных литералов, а также комментариев, диграфы не обрабатываются. В отличие от триграфов, которые обрабатываются везде: Триграф: ??< ??> ??( ??) ??= ??/ ??' ??! ??- Значение: { } [ ] # \ ^ | ~ Смысл всего это безобразия в том, чтобы на С можно было писать даже на экзотических кодировках, в которых недостает некоторых символов. Не видел, чтобы это хоть где-то применялось на практике.Ответ 2
Это диграф https://ru.wikipedia.org/wiki/Диграф_(языки_Си) . Можете также почитать про триграфы. Я настоятельно рекомендую не использовать это
Комментариев нет:
Отправить комментарий