我正在查看一些遗留程序,其中包含以下代码:
C/free
Dow 1=1;
SubRoutine();
EndDo;
*INLR = *On;
/end-free
有问题的程序是类似服务器的程序,子程序通过网络处理传入的请求。对我来说,* INLR = * On语句似乎没有任何效果,但是再一次,我对RPG的了解非常有限,这种模式在我正在研究的几个程序中重复出现。
我的问题是:是/ end-free无法访问之前的最后一行是多余的?
答案 0 :(得分:4)
你是对的,在示例中,如图所示,没有正常的方法可以退出此循环。看来这个程序只会因错误或取消工作而结束。有时最好在主DOW中检查%shutdown(),以便允许永不结束的作业正常关闭,但在这种情况下,要么没有选择,要么没想到。
我可能推测该程序是通过复制另一个来编写的,并且* INLR行可能已作为标记结尾的常规方式留在代码中。所以有人可能认为这条线是无害的,并且可以让它更容易理解结束。