C++ 反斜杠在C++;什么意思?

C++ 反斜杠在C++;什么意思?,c++,syntax,C++,Syntax,这段代码是什么:(特别是反斜杠“\”?) 我添加了数据类型,因为它们可能是相关的。 谢谢你的帮助。 它允许你继续下一行的语句——通常你只需要在一个定义宏块 < p>反斜杠表示C++中的两个不同的东西,这取决于上下文。 作为行的延续 在引号字符串(见下文)之外,\用作行连续字符。预处理器将有效地忽略紧跟在行尾(不可见)的换行符,并将下一行追加到当前行 因此: 解析为: s23_foo += s8_foo * s16_bar; 线条延续可以串在一起。这: s23_foo += \ s8_foo

这段代码是什么:(特别是反斜杠“\”?)

我添加了数据类型,因为它们可能是相关的。
谢谢你的帮助。

它允许你继续下一行的语句——通常你只需要在一个定义宏块

< p>反斜杠表示C++中的两个不同的东西,这取决于上下文。 作为行的延续 在引号字符串(见下文)之外,
\
用作行连续字符。预处理器将有效地忽略紧跟在行尾(不可见)的换行符,并将下一行追加到当前行

因此:

解析为:

s23_foo += s8_foo * s16_bar;
线条延续可以串在一起。这:

s23_foo += \ 
s8_foo * \
s16_bar;
变成这样:

s23_foo += s8_foo * s16_bar;
在大多数上下文中,C++空白是不相关的,因此在这个特定的例子中,不需要行继承。这应该很好:

s23_foo += 
s8_foo * s16_bar;
事实上,当你有一个很长的术语序列时,它可以帮助你对代码进行分页

由于预处理器处理一个
#define
,直到到达一个换行符,因此行连续在宏定义中最有用。例如:

#define FOO() \
s23_foo += \ 
s8_foo * s16_bar; 
"hello\n"
如果没有行连续字符,
FOO
将在此处为空

作为逃逸序列 在引号字符串中,反斜杠用作分隔符以开始2个字符的转义序列。例如:

#define FOO() \
s23_foo += \ 
s8_foo * s16_bar; 
"hello\n"
在这个字符串文本中,
\
开始一个转义序列,转义码是
n
<代码>\n导致在字符串中嵌入换行符。当然,这意味着如果希望字符串包含
\
字符,还必须对其进行转义:

"hello\\there"
屏幕上显示的字符串结果:

你好,在吗


各种转义序列都有文档记录。

因此,更准确地说,在这些宏之外,它实际上什么都不做。@millimoose不,您仍然可以使用反斜杠在宏之外编写有效代码。。但它真的很难看;)@Polentino我的观点是,如果在您提到的情况下省略反斜杠,代码仍然有效。@millimoose您可以使用反斜杠使注释跨越多行:P@millimoose如果你将许多后斜杠组合在一起,你可以画一个值得一提的例子:
code//注释\注释连续代码