C语言中的某些符号,例如/、*、=,只有一个字符长,称为单字符符号,而C语言中的其他符号,例如/*、==,以及标识符,包括了多个字符,称为多字符符号。当C语言编译器读入一个字符'/'后又跟了一个字符'*',那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是后起来作为一个符号对待。C语言对这个问题的解决方案可以归纳为一个很简单的规则:每一个符号应包含尽可能多的字符。即编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分:如果可能,继续读入下一个字符符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号。这个策略有时被称为“贪心法”。
《C 陷进和缺陷》----词法分析中的“贪心法”
最新推荐文章于 2023-05-12 17:17:03 发布