Vraag : Proto ILE

Hallo proberen de Vrienden,

I om 2 werkende delen van programma's te combineren die boete werken, nu word ik doubl; e definitiefouten…
Maybe omdat het is een tijdje geleden dat ik dit soort materiaal schreef, maar kan niet ik solution
(in echt leven PM#S zijn 4 maar geen 400 vinden)

And ja ik zie er een dubbele definitie, maar hoe te om dit op te lossen is? DESKUNDIGEN

Thanks!!!!!

" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
de
P #BLDSTR B UITVOER                     
D #BLDSTR PI 1600A HET VARIËREN                    
D StrInp 1600A het VARIËREN CONST              
D OPTIES (*VARSIZE)          
D PM#001 100A CONST HET VARIËREN              
D OPTIES (*VARSIZE: *NOPASS)  
D PM#002 100A CONST HET VARIËREN              
D OPTIES (*VARSIZE: *NOPASS)  
D PM#003 100A CONST HET VARIËREN              
D OPTIES (*VARSIZE: *NOPASS)  
D PM#004 100A CONST HET VARIËREN              
D OPTIES (*VARSIZE: *NOPASS)  
DPM#DS DS                                        
D PM#001 100A Bekleding (PM#DS: *NEXT) 
D PM#002 100A Bekleding (PM#DS: *NEXT) 
D PM#003 100A Bekleding (PM#DS: *NEXT) 
D PM#004 100A Bekleding (PM#DS: *NEXT) 
D PM# 100A Schemerige (4) Bekleding (PM#DS: 1)

Antwoord : Proto ILE

Kan ik geen likeds in deel mijn van PR (pi gebruiken)?

Zolang het roepen proc in een DS verzendt, dan kunt u een DS aan de ontvangende partij gebruiken.

Namelijk als het roepen proc een parameter „door verwijzing“ overgaat, uw gaat het ontvangen proc slechts een adres ontvangen -- de definitie is onbelangrijk wat betreft het systeem; het is hoofdzakelijk slechts relevant in termen van houdbaarheid. (Maar dat is een belangrijke relevantie. U wilt definities tussen bezoeker en callee opnieuw gebruiken om insecten van onverenigbare definities te minimaliseren.)

Als het geheugen binnen een DS in het roepen proc wordt bepaald, kunt u de zelfde definitie DS in geroepen gebruiken proc omdat zij richtend op het zelfde geheugen (zolang „door verwijzing“ zullen overgegaan worden). En in dat geval, zou er niet enige behoefte aan uw proc aan EVAL from/to het argument en een afzonderlijke DS zijn; de waarden zouden reeds in DS zijn.

Of als een groep van 400 variabelen allen om in aangrenzend geheugen gebeurt te zijn in het roepen proc en zij allen de zelfde definitie hebben, moet u slechts het adres van de eerste variabele overgaan -- geroepen proc kan zijn argument bepalen een 400 elementenserie te zijn. (Natuurlijk, kan het netelig zijn om ervoor te zorgen dat u aangrenzend geheugen gebruikt -- een DS wordt vaak gebruikt voor dat.)

Maar het hebben van verschillende definities tussen het roepen en geroepen procs is wat het risico van slecht gecombineerd parms verwijdt. Zo gebruiken wij /COPY regelmatig leden helpen ervoor zorgen dat wij geheugen de zelfde manier op beide einden van verwijzingen voorzien.

Als u in een DS overgaat, zult u DS met waarden in elke proc moeten laden die uw proc roept. Als u in afzonderlijke parms overgaat, laadt u slechts DS in uw proc. U moet kiezen waar het geheugenbeheer plaatsvindt.

Als dit in een proc is die slechts in één enkel programma zal gebonden worden, zou het om het even welk verschil kunnen niet maken. Het zal slechts gedaan worden in één stuk van code één van beide manier.

Maar als uw proc van veelvoud andere procs kan worden geroepen, zou u die lading moeten zien de serie in uw proc best zou kunnen zijn. Dicteer niet aan het roepen procs hoe zij hun variabelen moeten organiseren.

Het antwoord is… het afhangt.

Tom
Andere oplossingen  
 
programming4us programming4us