假设我有一个数据结构,例如
d dog DS qualified
d name 20
d breed 20
d birthdate 8 0
然后我可以定义
d poochie likeds(dog)
并使用poochie.name等。
但是我可以将'dog'设置为模板而不在内存中创建结构吗?
答案 0 :(得分:7)
在V6R1中会有另一个名为TEMPLATE的关键字。带有它的数据结构不是在内存中创建的,只是由编译器用于参考。你也可以将它与inz()结合起来,在你的喜欢()中使用默认值。
答案 1 :(得分:5)
有两种选择。第一种是使用dog属性的d-spec创建一个源成员,而不是使用likeds(dog),在每个将使用该子字段定义的数据结构之后都有/ copy。在我看来,这可能会造成一些草率的代码,并且可能使某些人难以分析道路。另一方面,如果您在多个程序中使用相同的数据结构,则会带来好处。
首先想到的选项是在dog数据结构上使用Based()关键字,然后定义指针字段。指针字段将占用一些内存,但是狗数据结构在程序分配之前不会占用任何内存。使用LikeDS(),Based()关键字不会转移到针对它定义的其他数据结构中。这样,您就可以在程序源中定义数据结构。您不必为它分配内存,也不必将指针设置为任何值。它默认为Null。请注意不要在代码中访问dog数据结构。你会得到一个指针错误,看起来与没有必需参数的程序调用相同。
答案 2 :(得分:3)
执行此操作:基于(指针名称)
使用指针是不必要的 - 我认为会做你想做的事。
答案 3 :(得分:0)
据我所知,没有。但是可以用子程序做类似的事情。
在Midrange.com RPG-L上发布此问题,而且比我聪明的人可以回答您的问题。