Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1273010
  • 博文数量: 287
  • 博客积分: 11000
  • 博客等级: 上将
  • 技术积分: 3833
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-16 08:43
文章分类
文章存档

2013年(15)

2012年(17)

2011年(17)

2010年(135)

2009年(85)

2008年(18)

分类: 系统运维

2009-04-29 11:11:06

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之间的调用。

(如有与本文有关的新内容,继续补充。)
阅读(1412) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~