我正在阅读弹性手册的Start Conditions。以下是此页面上给出的示例的一部分:
<str>\n {
/* error - unterminated string constant */
/* generate error message */
}
...
<str>\\n *string_buf_ptr++ = '\n';
...
\ n 和 \\ n 之间有什么区别?
感谢任何帮助
答案 0 :(得分:2)
\n
匹配换行符(通常为Ox0A
)。如果在到达换行符之前未终止C样式的引用字符串,则会触发该规则,并将其视为错误。\\n
匹配反斜杠后跟字母n
。如果引用的字符串包含两个字符的序列\n
,则会触发该规则,该序列将替换为单个换行符。 (还应该有其他六种C风格的字母转义序列的规则,\a
,\b
,\f
,\r
,\t
和{ {1}} - 每个都用适当的控制字符替换 - 但由于我无法证明的原因,其中两个丢失了。)