Что означает обратная косая черта в С++?

Вопрос:Что делает этот код: (особенно, что такое обратная косая черта? )? s23_foo += s8_foo * s16_bar; Я добавил типы данных, потому что они могут быть релевантными. Благодарим за помощь. Лучший ответ: Он позволяет вам продолжить вывод на следующую строку - обычно вам нужно только внутри макроса #define Ответ №1Обратные косые черты обозначают две разные

Вопрос:

Что делает этот код: (особенно, что такое обратная косая черта? )?

s23_foo += s8_foo * s16_bar;

Я добавил типы данных, потому что они могут быть релевантными.
Благодарим за помощь.

Лучший ответ:

Он позволяет вам продолжить вывод на следующую строку – обычно вам нужно только внутри макроса #define

Ответ №1

Обратные косые черты обозначают две разные вещи в С++, в зависимости от контекста.

Как продолжение линии

Вне строки кавычек (см. ниже) a используется как символ продолжения строки. Новая строка, которая следует в конце строки (не отображается), фактически игнорируется препроцессором, и следующая строка добавляется к текущей строке.

Итак:

s23_foo += s8_foo * s16_bar;

Анализируется как:

s23_foo += s8_foo * s16_bar;

Продолжение линии можно объединить. Это:

s23_foo += s8_foo * s16_bar;

Становится следующим:

s23_foo += s8_foo * s16_bar;

В С++ пробел не имеет значения в большинстве контекстов, поэтому в этом конкретном примере продолжение строки не требуется. Это должно компилироваться просто отлично:

s23_foo += s8_foo * s16_bar;

И на самом деле может быть полезно помочь разбивать страницы на код, когда у вас длинная последовательность терминов.

Поскольку препроцессор обработал #define до тех пор, пока не будет достигнута новая строка, продолжения строки наиболее полезны в определениях макросов. Например:

#define FOO() s23_foo += s8_foo * s16_bar;

Без символа продолжения строки FOO здесь будет пустым.

В качестве последовательности выхода

В строке кавычек в качестве разделителя используется обратная косая черта, чтобы начать 2-символьную escape-последовательность. Например:

«hellon»

В этом строковом литерале начинается escape-последовательность, причем escape-код равен n. n приводит к введению символа новой строки в строку. Это, конечно, означает, что если вы хотите, чтобы строка содержала символ , вам также необходимо избежать этого:

«hello\there»

выводит строку на экране:

приветесть

Различные escape-последовательности документируются здесь.

Оцените статью
Добавить комментарий