Frage : ILE proto

Hallo Freunde,

I der Versuch, zum von 2 Verschleißteilen Programmen zu kombinieren, die sind, jetzt erhalte ich doubl; e-Definitionstörungen…
Maybe, weil es vor einiger Zeit ist, dass ich diese Art des Materials schrieb, aber ich können nicht finden, das solution
(in realem leben die PM#S sind nicht 4 aber 400),

And, ja, das ich sehe, dass es eine doppelte Definition, aber gibt, wie man dieses löst?

Thanks EXPERTEN!!!!!

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
P #BLDSTR B EXPORT                     
UNTERSCHIED D #BLDSTR PU-1600A                    
D StrInp 1600A CONST UNTERSCHIED              
D-WAHLEN (*VARSIZE)          
UNTERSCHIED D-PM#001 100A CONST              
D-WAHLEN (*VARSIZE: *NOPASS)  
UNTERSCHIED D-PM#002 100A CONST              
D-WAHLEN (*VARSIZE: *NOPASS)  
UNTERSCHIED D-PM#003 100A CONST              
D-WAHLEN (*VARSIZE: *NOPASS)  
UNTERSCHIED D-PM#004 100A CONST              
D-WAHLEN (*VARSIZE: *NOPASS)  
DPM#DS DS                                        
Testblatt d-PM#001 100A (PM#DS: *NEXT) 
Testblatt d-PM#002 100A (PM#DS: *NEXT) 
Testblatt d-PM#003 100A (PM#DS: *NEXT) 
Testblatt d-PM#004 100A (PM#DS: *NEXT) 
D PM# 100A verdunkeln sich (4) überlagerte (PM#DS: 1)

Antwort : ILE proto

Kann ich likeds nicht in meinem Teil Fotorezeptor-(PU) benutzen?

Solange das benennende proc in einen DS sendet, dann können Sie einen DS auf der empfangenden Seite verwenden.

Das heißt, wenn das benennende proc einen Parameter „durch Hinweis“ führt, wird Ihr empfangendes proc nur eine Adresse empfangen -- die Definition ist irrelevant, insoweit das System; es ist im Wesentlichen in Haltbarkeit ausgedrückt nur relevant. (Aber die ist eine wichtige Bedeutung. Sie möchten Definitionen zwischen Anrufer und aufgerufenem Programm wiederverwenden, um Wanzen von den inkompatiblen Definitionen herabzusetzen.)

Wenn das Gedächtnis innerhalb eines DS im benennenden proc definiert wird, können Sie die gleiche DS-Definition im benannten proc verwenden, weil sie auf das gleiche Gedächtnis zeigen werden (solange überschritten „durch Hinweis“). Und in diesem Fall, würde es keine Notwendigkeit an Ihrem proc zu EVAL von/nach dem Argument und einem unterschiedlichen DS geben; die Werte würden bereits im DS sein.

Oder wenn eine Gruppe von 400 Variablen alle geschehen, im angrenzenden Gedächtnis im benennenden proc zu sein und alle sie die gleiche Definition haben, müssen Sie nur die Adresse der ersten Variable führen -- das benannte proc kann sein Argument definieren, um eine Reihe mit 400 Elementen zu sein. (Selbstverständlich, kann es heikel sein, zu überprüfen, ob Sie angrenzendes Gedächtnis verwenden -- ein DS ist für den. häufig benutzt)

Aber, verschiedene Definitionen zwischen dem Benennen und den benannten procs zu haben ist, was das Risiko der falsch angepassten parms verbreitert. So verwenden wir regelmäßig /COPY-Mitglieder, um zu helfen, zu garantieren, dass wir Gedächtnis die gleiche Weise an beiden Enden beziehen.

Wenn Sie in einen DS überschreiten, müssen Sie den DS mit Werten in jedem proc laden, das Ihr proc benennt. Wenn Sie in unterschiedliche parms überschreiten, laden Sie nur den DS in Ihrem proc. Sie müssen wählen, wo das Gedächtnismanagement stattfindet.

Wenn dieses in einem proc ist, das nur in ein einzelnes Programm gesprungen wird, konnte es kein unterscheiden. Es wird nur im Einteiler des Codes jede Weise getan.

Aber, wenn Ihr proc von der Mehrfachverbindungsstelle benannt werden kann andere procs, sollten Sie sehen, dass, die Reihe zu laden in Ihrem proc am besten sein konnte. Nicht zu den benennenden procs vorschreiben, wie sie ihre Variablen organisieren müssen.

Die Antwort ist… es abhängt.

Tom
Weitere Lösungen  
 
programming4us programming4us