C/C++ 编译器如何操作源代码中的转义字符["\"]?如何编写用于处理该字符的编译器语法?遇到该字符后编译器会做什么?
mahesh
问问题
1412 次
4 回答
6
关于这个主题的一个有趣的注释是On Trusting Trust [PDF 链接]。
该论文描述了编译器可以准确处理此问题的一种方法,显示了 c-written-in-c 编译器如何没有将代码显式转换为 ASCII 值;以及如何将新的转义代码引导到编译器中,以便对新代码的 ASCII 值的理解也是隐含的。
于 2008-11-27T20:28:53.677 回答
2
它通常会转义以下字符:
- 在字符串文字或字符文字中,它意味着转义下一个字符。
\a
表示“警报”(闪烁终端,哔哔声或其他),\n
表示“换行”,\xNUM
例如表示十六进制数。 - 如果它作为换行符之前的最后一个可见字符出现,无论是否在字符串中(甚至在行宽注释中!),它都充当换行符:以下换行符被忽略,下一行是与当前行合并。
于 2008-11-27T11:06:20.533 回答
1
带有后续字符(如\n
)的转义字符是 C 编译器的单个字符 - 扫描器将其作为字符标记呈现给解析器,因此解析器中不需要特殊的语法规则来处理转义字符。
于 2008-11-27T10:50:05.433 回答