oja*_*jay -1 rpg rpgle ibm-midrange
假设两种选择都会产生相同的结果,您通常会做出什么选择?为什么?
dcl-proc test_proc ;
...
dcl-s count int(5) inz ;
...
// use count
end-proc ;
Run Code Online (Sandbox Code Playgroud)
或者
dcl-proc test_proc ;
...
dcl-s count int(5) ;
...
clear count
// use count
end-proc ;
Run Code Online (Sandbox Code Playgroud)
另外,由于变量count的范围是局部的,我们是否需要使用它们中的任何一个?
您不需要 INZ 即可使用 RESET。
但最好仅当 RESET 值与 CLEAR 值不同时才使用 RESET。
使用RESET需要编译器生成额外的存储空间和额外的指令来保存初始值。
RPG 独立变量被初始化为其默认值。对于所有数字字段,默认值为 0。
因此,对于您的本地(和非静态)变量,您不需要INZ也不需要使用CLEAR或RESET在使用之前。
RESET总是将变量重置为其初始化值。
CLEAR会将变量重置为类型默认值。
例子:
dcl-s myNum int(5);
CLEAR myNum;--> myNum== 0RESET myNum;--> myNum== 0dcl-s myNum int(5) inz(5);
CLEAR myNum;-->myNum== 0RESET myNum;-->myNum == 5附录
我唯一经常使用 INZ 的就是数据结构。没有INZ,DS初始化为空白;无论子字段的数据类型如何。使用 INZ,每个子字段都会初始化为其默认类型。