免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5765 | 回复: 4
打印 上一主题 下一主题

再谈RPG程序中的调用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-14 15:24 |只看该作者 |倒序浏览
本帖最后由 blogliou 于 2012-11-14 15:34 编辑

固定格式:
                CALL  程序                        属于动态调用
                CALLB 模块(MODULE)         属于静态绑定调用


自由格式,则主要使用操作符CALLP, 在调用之前需要在D规范行先做原型定义,相当于C语言中函数和形参定义。
编译程序能事先比较程序中调用语句中的参数个数与类型是否与原型定义的形参一致,能够避免固定格式两种调用方法可能在运行过程中引用参数不符而导致运行错误的弊端。
根据原型定义中的关键词不同,调用对象也就不对,不同关键词含义如下:
                ExtPgm (程序),调用程序,                    属于动态调用,       相当于固定格式的CALL
                ExtProc(模块或没有Nomain的主过程),     属于静态绑定调用, 相当于固定格式的CALLB     
                无关键词,调用绑定模块中的一般子过程,     属于静态绑定调用,  固定格式无对应.  也可无CALLP操作符执行或过程名用在表达式中
                无关键词,调用服务程序模块中的子过程,     属于引用调用(Call By Reference)


在Extended Factor 2中也支持CALLP

推荐初学者使用自由格式编程,统一使用CALLP.

论坛徽章:
0
2 [报告]
发表于 2012-11-14 16:32 |只看该作者
占个沙发,多谢大神总结,目前接触过的系统中极少用到自由格式的(应该是自己接触的太少),自由格式确实好用

论坛徽章:
0
3 [报告]
发表于 2012-11-15 20:39 |只看该作者
最近很少看到技术方面的帖子,顶楼主

论坛徽章:
0
4 [报告]
发表于 2012-11-20 12:40 |只看该作者
平时直接用CALL 的比较多。

论坛徽章:
2
摩羯座
日期:2013-12-13 13:46:42白羊座
日期:2013-12-13 18:05:06
5 [报告]
发表于 2013-11-25 11:32 |只看该作者
谢谢分享,CALLP是好的,但实施起来费力.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP