假设我有一个数据结构,例如
d dog DS qualified d name 20 d breed 20 d birthdate 8 0
然后我可以定义
d poochie likeds(dog)
并使用poochie.name等
但是,我可以将"狗"设置为模板,而无需在内存中创建结构吗?
在V6R1中,将有另一个名为TEMPLATE的关键字.带有它的数据结构不是在内存中创建的,只是由编译器用于参考.您还可以将它与inz()结合使用,以获得您喜欢的默认值().
我想到了两种选择.第一种是使用dog属性的d-specs创建一个源成员,而不是使用likeds(dog),在每个将使用该子字段定义的数据结构之后都有/ copy.在我看来,这可能会造成一些草率的代码,并且可能使某些人难以分析道路.另一方面,如果您在多个程序中使用相同的数据结构,则有一些好处.
想到的第二个选项是在dog数据结构上使用Based()关键字,然后定义指针字段.指针字段将占用一些内存,但是狗数据结构在程序分配之前不会占用任何内存.使用LikeDS(),Based()关键字不会转移到针对它定义的其他数据结构中.这样,您就可以在程序源中定义数据结构.您不必为它分配内存,也不必将指针设置为任何值.它默认为Null.请注意不要在代码中访问dog数据结构.你将得到一个指针错误,看起来与没有必需参数的程序被调用时相同.