我目前正在阅读article,我无法理解第2阶段。
每当反斜杠出现在一行的末尾时(紧接着 通过换行符,删除反斜杠和换行符, 将两条物理源线组合成一条逻辑源线。
我知道换行符后面的反斜杠可以出现在引号内,但第2阶段的解释就像换行符可以单独出现一样,如
int var = 2; \n
特别是第2部分:
如果非空源文件没有以换行符结尾 在此步骤之后(最初是否没有换行,或者它已结束 使用反斜杠),行为未定义(直到C ++ 11)a 添加了终止换行符(从C ++ 11开始)。
“如果源文件结束并带有换行符”?再次,听起来像换行符可能出现在某种字符串之外 - 它们是什么意思?如果文件始终被引号包围,文件如何以换行符结束?
答案 0 :(得分:4)
\n
在引用的字符串文字内表示换行符。 \n
本身不是新行字符。新行字符是字节0x0A
(换行符,由Linux使用)或0x0D
(回车,由Mac使用)(请参阅ASCII表)。在Windows上,两个字节都表示一个新的行字符(一个回车符后跟一个换行符,通常称为CRLF)。
在键盘上按Enter键时,会在源代码中插入换行符。 \n
仅仅是所谓的转义序列。当角色无法直接合法地写入字符串文字时,它是一种在字符串文字中表示字符的方法。