Hallo,
wir überlegen gerade, ob die beiden unten angegebenen Programmcodes sich im Speicherverbrauch unterscheiden. Die Routinen machen genau das gleiche. Aber die 2. Routine speichert das Rückgabeergebnis vor der Rückgabe noch in eine eigene Ergebnisvariable um. Das heißt, die 2. Routine hat eine Variablendefinition mehr. Aber meiner Meinung nach muss auch die erste Routine den Speicher 100000 "verbraten", da der Return das Ergebnis ja in irgendeinem Speicherbereich aufbereiten muss.

Dieter

dcl-proc test1;
dcl-pi *n varchar(100000);
dcl-s var1 varchar(50000);
dcl-s var2 varchar(50000);
... jetzt die Variablen mit Werten füllen ...
return var1+var2;
end-proc;


dcl-proc test2;
dcl-pi *n varchar(100000);
dcl-s var1 varchar(50000);
dcl-s var2 varchar(50000);
dcl-s ergebnis varchar(100000);
... jetzt die Variablen mit Werten füllen ...
ergebnis = var1 + var2;
return ergebnis;
end-proc;