LCC编译器的源程序分析(34)continue语句

continue 语句的作用是跳过循环体中后面尚未执行的语句,接着进行下一次是否执行循环的判断。比如下面的例子:
 while( 表达式 1)
 {
       …
       if( 表达式 2)
 continue;
       …
 }
下面就来仔细地分析 LCC 里处理 continue 语句的源程序:
#001 case CONTINUE:
#002         walk(NULL, 0, 0);
#003         definept(NULL);
#004 
#005         if (loop)
#006               branch(loop + 1);
#007         else
#008               error("illegal continue statement/n");
#009 
#010         t = gettok();
#011         expect(';');
#012         break;
2 行是复位所有分配的内存。
3 行是定义执行点。
5 行是判断是否在循环语句中,如果不在,就表示使用这个语句出错,这是在第 8 行里处理。
6 行是处理跳转到下一个循环,由于在以前介绍的三个循环里都是在第 2 个标号里运行条件判断表达式的,所以调用 loop + 1 的标号。
10 行是获取下一个记号。
11 行是判断这个语句是否以分号结束。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值