-
Nicht ganz:
Bei call by VALUE wird nicht die Adresse sondern das ganze Feld an die rufende Prozedur übergeben.
Bei constant Reference wird immer eine Adresse weitergegeben, je nachdem die Adresse des Original-Feldes oder des Hilfs-Feldes
Birgitta
-
Nun habe ich (leider) erwartet, dass CONST eben grundsätzlich eine Kopie erstellt. Dann träte dieses Problem ja erst gar nicht auf.
-
 Zitat von Fuerchau
Nun habe ich (leider) erwartet, dass CONST eben grundsätzlich eine Kopie erstellt. Dann träte dieses Problem ja erst gar nicht auf.
Dann wär's nicht besser als VALUES, bei dem immer eine Kopie erstellt wird.
-
 Zitat von B.Hauser
Nicht ganz:
Bei call by VALUE wird nicht die Adresse sondern das ganze Feld an die rufende Prozedur übergeben.
Bei constant Reference wird immer eine Adresse weitergegeben, je nachdem die Adresse des Original-Feldes oder des Hilfs-Feldes
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?
-
 Zitat von dschroeder
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
-
-
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!
Similar Threads
-
By harkne in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 20-03-19, 11:35
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 30-11-17, 15:14
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 09-10-17, 09:42
-
By TheDevil in forum NEWSboard Programmierung
Antworten: 22
Letzter Beitrag: 16-02-16, 08:11
-
By _MG_ in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 12-12-15, 12:07
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks