Anmelden

View Full Version : Fehler ILERPG Runtime mit CONST-Parametern



Seiten : 1 [2]

BenderD
17-03-20, 12:28
Aber wenn die Adresse eines Hilfsfeldes übergeben wird, ist es doch ein call per Value, oder? Es muss doch erstmal eine Hilfskopie des Originalfeldes erstellt werden, denke ich.

Deshalb habe ich das jetzt alles so verstanden: bei VALUES wird immer eine Kopie erstellt, bei CONST nur manchmal.
Ist das korrekt?

... der Unterschied liegt im Adressraum:
- const gehört zum Aufrufer (der Aufgerufene kann also immer noch im aufrufenden Programm rummmurgeln)
- value gehört zum Aufgerufenen (d.h. das geht nur, wenn beide das können, was bei externen stored Procdures nicht der Fall ist)

Was lernen wir daraus: eigentlich beides Murks (RPG halt).

D*B

dschroeder
17-03-20, 12:41
Danke für alle Infos.

Fuerchau
17-03-20, 12:56
Ist eine Variable mit CONST definiert, prüft nur der Compiler, ob eine Änderung versucht wird.
Das geht sogar, wen man versucht per %ADDR eine Variable per Pointer zu definieren.
Der Compiler lehnt dies bereits ab!

Da man Const aber auch beim Aufruf von z.B. CLP's oder COBOL verwenden kann, diese jedoch CONST gar nicht kennen, ist hierrüber trotzdem eine Änderung möglich.
Konzeptionell ist CONST also nicht sicher, da bei identischer Definition eben die Adresse direkt übergeben wird!