【发布时间】:2018-01-22 17:23:34
【问题描述】:
我目前正在阅读此article,但我无法理解第 2 阶段。
每当反斜杠出现在行尾时(紧跟 由换行符),反斜杠和换行符都被删除, 将两条物理源线合并为一条逻辑源线。
我知道换行符后面的反斜杠可以出现在引号内,但是第 2 阶段的解释好像换行符可以单独使用,例如
int var = 2; \n
尤其是第 2 部分:
如果非空源文件不以换行符结尾 在这一步之后(无论它最初没有换行符,还是它结束了 带反斜杠),行为未定义(C++11 前)a 添加了终止换行符(C++11 起)。
“如果源文件没有结束换行符”?再一次,听起来换行符可能出现在某种字符串之外——它们是什么意思?如果文件总是被引号包围,文件怎么能以换行符结尾?
【问题讨论】:
-
源代码是纯文本,纯文本也有换行符(虽然大多数编辑器默认不显示),否则你怎么能把代码放在两个不同的行上?
-
引号是指源文件中的换行符(也是字符),而不是用于表示字符串中的换行符的两个字符'\'和'n'。
-
标准中所说的换行符是您在代码编辑器中使用返回按钮键入的换行符。
-
请注意,文字
\n不是换行符。这是一个编码。 -
@UnholySheep Ahhh 现在它开始变得有意义了。所以当我按回车并开始换行时,我在实际源代码中隐式添加了换行符?
标签: c++