怎样实现COBOL子程序的动态调用,编译选项DYNAM,NODLL如何设置?

怎样实现COBOL子程序的动态调用,编译选项DYNAM,NODLL如何设置?,第1张

在编译代码中指定DYN参数:

//COBOL EXEC PGM=IGYCRCTL,REGION=640K,COND=(12,LE),

// PARM=(NOTERM,LIB,XREF,DYN,'')

.

.

//LINK EXEC PGM=HEWLF064,REGION=2048K,COND=(12,LE),PARM=(DYN)

其实只要在COBOL程序中是CALL一个变量,它就是表示一个动态调用。

静态调用子程序时,子程序会与主程序运行时一起加载进内存,也就是一直存在着。

动态调用时,子程序只有在被调用时存在于内存。调完后内存会被释放。

这样就导致,静态时子程序中的变量会一直保持下次调用时的值,未被初期化。

两种方法各有优缺点,静态速度快点。动态每次掉完后子程序无需初期化。

其他的我有些忘了,下次找资料再给你解释。

被call的叫做子程序,而你调用子程序的时候应该需要给子程序进行赋值,作为子程序的入力参数,通过子程序的计算或者check,将出力参数作为返回结果,都会放在后面using的copybook中

call ‘pgm’ using copybook 这个copybook就是主程序和子程序的接口的copybook,在子程序中的link section中要有定义,而且在过程部也要声明using它


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11592535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存