词法分析的大嘴原则

    C/C++ 中的词法分析中的理解。如,/、=、和*只有一个符号,称之为单字符的符号,那么对于多个字符数的符号,比如,/*、和 ==包含了两个的单字符,所以称之为多字符符号。

    所以,在编译器录入字符的时候,每录入一个字符,比如 / 之后就会做出判断是否已经录入完毕,如果 后面还有 *,就会合在一起组成一个多字符,重新判断是否已经录入完毕;否则 是当作录入一个字符进行处理。

    编译器录入字符的原则是:大嘴原则,也就是,尽可能录入更多字符。编译器录入字符的时候,从左到右进行一个接一个地录入字符,如果这个字符可以组成一个符号,那么继续录入时其他的符号,再判断是否可以组成一个多字符;如果可以就继续录入,重复上面的过程。这个方法曾只为大嘴原则。

1、代码理解:

a --- b

  可以理解为

a -- - b

但绝对不是:

a- --b

y = x/*p  的时候,就会出现报错的现象,

    因为录入字符的时候,会将 /* 录入进去,大嘴原则发挥了效果,编译器会认为是 注释的符号,所拥有就会报错,

解决的办法:

y = x/ *p 
或者
y = x/(*p)

原文地址:https://www.cnblogs.com/qxj511/p/5191934.html