RPGIV编程问题百解(17)Subroutines vs Subprocedures
一、概念:
Subroutine是子例程,是程序代码中按功能处理的、人为划分的一段代码。
Subprocedure是一个H表中定义no main的procedure,组成一个独立的module。
二、Subroutine与Subprocedure的比较
1.从功能实现上讲,Subroutine与Subprocedure可以实现同样的功能。
2.从代码维护角度来说,Subprocedure维护方便,一处维护更新,多处可以直接使用。Subroutine则需使用到的程序都要重新编译,虽然可以通过/COPY或/INCLUDE代码一次性维护。
3.从环境变量来说,Subroutine中定义的变量可以在程序范围内使用;Subprocedure定义的变量只能在本身的Subprocedure范围中使用。
4.从运行速度来说,Subroutine的速度比Subprocedure快。
5.从多线程并行处理角度来说,Subroutine不能规范于线程模块处理;Subprocedure则可以。
6.从传递参数来说,Subroutine没有传参的问题;Subprocedure则有以下传参问题:
1)参数长度受到限制;
2)参数类型比较呆板,不能任何类型的参数;
3)必须使用规定的结构格式;
4)RPGIV v6r1版本以下,不能使用本地文件。
三、其它
一个Subroutine可以放在一个Subprocedure中使用,也可以放在一个procedure中使用。
一个Subroutine中,可以callp,或callb一个Subprocedure,或一个procedure。callp是外部调用。callb是程序内部的Subprocedures之间的调用。
(如有与本文有关的新内容,继续补充。)
阅读(1448) | 评论(0) | 转发(1) |