Что значит \? избежать в грамматике C?

Я читал это и нашел побег \?. Что означает именно этот побег? литерал ? внутри строки (я до сих пор не вижу причины) или это правило грамматики BNF, о котором я не знаю?


person Jack    schedule 30.06.2014    source источник
comment
Прочтите Почему "\?" управляющая последовательность в C/C++?   -  person Yu Hao    schedule 30.06.2014


Ответы (2)


Он указывает буквальный вопросительный знак. см. http://en.wikipedia.org/wiki/Digraphs_and_trigraphs

Обратная косая черта используется в качестве символа-маркера, чтобы сообщить компилятору/интерпретатору, что следующий символ имеет особое значение. Что означает этот следующий символ, зависит от реализации. Например, языки стиля C используют \n для обозначения новой строки и \t для обозначения табуляции.

Использование слова «побег» на самом деле означает временный выход из анализа текста и переход в другой режим, в котором следующий символ обрабатывается по-другому.

person Jayesh Bhoi    schedule 30.06.2014

Он используется в функции под названием триграфы и обозначает вопросительный знак. . Используя это, вы можете написать последовательность из трех символов, начинающуюся с вопросительных знаков, чтобы заменить другой символ.

Из С11

C11 §6.4.4.4 Символьные константы Раздел 4

Двойная кавычка " и вопросительный знак ? могут быть представлены либо сами по себе, либо с помощью escape-последовательностей \" и \? соответственно, но одинарная кавычка " и обратная косая черта \ должны быть представлены соответственно с помощью escape-последовательностей \' и \.

person Rahul Tripathi    schedule 30.06.2014
comment
Я думаю, вы имеете в виду C11, отредактируйте его, я удаляю отрицательный голос (кстати, это был не я) - person Jack; 30.06.2014
comment
@ Джек: - Это была опечатка. Обновил это! Спасибо - person Rahul Tripathi; 30.06.2014