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