如何C/C++编译器操纵义符["\"]在源代码?是如何编译器的语法书面为处理这个角色?什么编译器做后遇到那个角色?

有帮助吗?

解决方案

大多数编纂者被分成部分:编译器的前端是被称为 词汇分析 或扫描仪。这一部分的编译器读取实际的字符,并创建了标记。它有一个国家机的它决定,在看到一个逃脱的性格,它是否是真正的(例如当它出现的内部string)或修改下一个字符。令牌输出做出相应作为逃脱的性格或其他一些令牌(例如标签或newline)的下一部分将编译器(分析器).国家机可能几个字符的组成一个标记。

其他提示

在这个问题上一个有趣的注意是在信任信托[PDF链接]

本文介绍了一种编译器可以准确地处理这个问题的一种方式,显示了如何将C-写入的-C编译器不具备的代码转换成ASCII值的明确的翻译;以及如何启动一个新的转义码到编译器,以便为新的代码的ASCII值的理解也隐式的。

它通常会转义以下字符:

  • 在字符串文字或字符文字中,它意味着转义下一个字符。 \a 表示“警报”(终端闪烁、蜂鸣声或其他), \n 意思是“换行”, \xNUM 例如,表示十六进制数。
  • 如果它作为换行符之前的最后一个可见字符出现,无论是否在字符串中(甚至在行宽注释中!),它都充当行延续:接下来的换行符将被忽略,下一行将与当前行合并。

用下面的字符(如\n)转义字符为C编译器的单个字符 - 扫描器呈现它解析器字符记号,所以在解析器特殊语法规则为转义字符,不需要

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top