Я читал это и нашел побег \?
. Что означает именно этот побег? литерал ?
внутри строки (я до сих пор не вижу причины) или это правило грамматики BNF, о котором я не знаю?
Что значит \? избежать в грамматике C?
Ответы (2)
Он указывает буквальный вопросительный знак. см. http://en.wikipedia.org/wiki/Digraphs_and_trigraphs
Обратная косая черта используется в качестве символа-маркера, чтобы сообщить компилятору/интерпретатору, что следующий символ имеет особое значение. Что означает этот следующий символ, зависит от реализации. Например, языки стиля C используют \n
для обозначения новой строки и \t
для обозначения табуляции.
Использование слова «побег» на самом деле означает временный выход из анализа текста и переход в другой режим, в котором следующий символ обрабатывается по-другому.
Он используется в функции под названием триграфы и обозначает вопросительный знак. . Используя это, вы можете написать последовательность из трех символов, начинающуюся с вопросительных знаков, чтобы заменить другой символ.
Из С11
C11 §6.4.4.4 Символьные константы Раздел 4
Двойная кавычка " и вопросительный знак ? могут быть представлены либо сами по себе, либо с помощью escape-последовательностей \" и \? соответственно, но одинарная кавычка " и обратная косая черта \ должны быть представлены соответственно с помощью escape-последовательностей \' и \.