Chinaunix首页 | 论坛 | 博客
  • 博客访问: 346699
  • 博文数量: 90
  • 博客积分: 847
  • 博客等级: 准尉
  • 技术积分: 1373
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-02 10:54
个人简介

跌打滚爬中的小菜鸟...

文章分类

全部博文(90)

文章存档

2015年(5)

2013年(47)

2012年(38)

我的朋友

分类:

2012-10-25 14:23:27

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

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