//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它
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)