4

假设我有一个数据结构,例如

d dog           DS                  qualified
d   name                        20
d   breed                       20
d   birthdate                    8  0

然后我可以定义

d   poochie                         likeds(dog)

并使用 poochie.name 等。

但是我可以将“狗”设置为模板而不在内存中创建结构吗?

4

4 回答 4

7

In V6R1 there will be another keyword that is called TEMPLATE. Datastructures with It are not created in the memory and are just used by the compiler for reference. You can also combine it with inz() to have default values in your likeds().

于 2008-11-02T09:24:50.350 回答
5

我想到了两个选择。第一种是使用狗属性的 d-specs 创建一个源成员,而不是使用 likes(dog),而是在每个将使用该子字段定义的数据结构之后有一个 /copy。在我看来,这可能会导致一些草率的代码,并且可能会让某人难以分析。另一方面,如果您在多个程序中使用相同的数据结构,则有好处。

想到的第二个选项是在 dog 数据结构上使用 Based() 关键字,然后定义一个指针字段。指针字段会占用一些内存,但 dog 数据结构在您的程序分配之前不会占用任何内存。Based() 关键字不会延续到使用 LikeDS() 对其定义的其他数据结构中。这样您就可以在程序源中定义数据结构。您不必为它分配内存,也不必将指针设置为任何值。它默认为空。请注意不要在代码中访问 dog 数据结构。你会得到一个指针错误,看起来就像你的程序在没有必需参数的情况下被调用一样。

于 2008-10-21T16:04:35.287 回答
3

这样做:基于(指针名称)

使用指针是不必要的——我认为会做你想做的事。

于 2008-12-12T19:00:54.587 回答
0

据我所知,没有。但也许可以对子程序做类似的事情。

在Midrange.com RPG-L上发布这个问题,比我聪明的人可能会回答你的问题。

于 2008-10-21T15:49:24.270 回答