Escape-последовательности
Сочетания символов, состоящие из обратной косой черты (\), за которой следует буква или сочетание цифр, называются escape-последовательностями. Для представления символа новой строки, одинарной кавычки или некоторых других символов в символьной константе необходимо использовать escape-последовательности. Escape-последовательность рассматривается как один символ и, следовательно, является допустимой символьной константой.
Escape-последовательности обычно используются для указания действий, например возврата каретки или табуляции, на терминалах и принтерах. Они также используются для обозначения буквенных представлений непечатаемых символов, а также символов, которые обычно имеют специальное значение, например двойных кавычек ("). В следующей таблице перечислены escape-последовательности ANSI и представляемые ими значения.
Обратите внимание, что вопросительный знак, перед которым стоит обратная косая черта (\?), обозначает литерал вопросительного знака в случаях, когда эта последовательность символов может быть ошибочно интерпретирована как триграф. Дополнительные сведения см. в разделе Триграфы.
Escape-последовательности
Escape-последовательность | Представляет |
---|---|
\a | Звонок (предупреждение) |
\b | Backspace |
\f | Подача страницы |
\n | Новая строка |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
\' | Одиночная кавычка |
\" | Двойная кавычка |
\\ | Обратная косая черта |
\? | Литерал вопросительного знака |
\ ooo | Символ ASCII в восьмеричной нотации |
\x hh | Символ ASCII в шестнадцатеричной нотации |
\x hhhh | Символ юникода в шестнадцатеричном формате, если эта escape-последовательность используется в многобайтовой знаковой константе или строковом литерале юникода. Например, WCHAR f = L'\x4e00' или WCHAR b[] = L"The Chinese character for one is \x4e00" . |
Блок, относящийся только к системам Майкрософт
Если обратная косая черта предшествует символу, которого нет в таблице, компилятор не обрабатывает неопределенный символ сам как символ. Например, \c
рассматривается как .c
Завершение блока, относящегося только к системам Майкрософт
Escape-последовательности позволяют отправлять неграфические управляющие символы на устройство отображения. Например, символ ESC (\033) часто используется в качестве первого символа команды управления для терминала или принтера. Некоторые escape-последовательности используются только на конкретных устройствах. Например, escape-последовательности вертикальной табуляции и перевода страницы (\v и \f) не влияют на вывод данных на экране, но отвечают за соответствующие операции на принтере.
Кроме того, обратную косую черту (\) можно использовать как символ продолжения. Если сразу за обратной косой чертой следует символ новой строки (эквивалентен нажатию клавиши ВОЗВРАТ), компилятор игнорирует эту последовательность и обрабатывает следующую строку как продолжение предыдущей. Эта возможность используется в основном для определений препроцессора, длина которых превышает одну строку. Например:
#define assert(exp) \
( (exp) ? (void) 0:_assert( #exp, __FILE__, __LINE__ ) )