词法分析的大嘴原则

    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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值