-
Dafür musst du dann tatsächlich Pointer verwenden um identische Adressen zu belegen:
d MyDs1 ds
d MyFeld 10
d MyPtr S * inz(MyDs1)
d MyDs2 ds based(MyPtr)
d MyFeld2 10
Das Risiko von falschen Definitionen auf die selben Adressen ist relativ hoch, zumal du nur eine DS auf einen Pointer basieren läßt.
In C++ ist das auch nichts anderes.
Auch dort kannst du innerhalb einer Klasse/Struktur nicht verschiedene Variablen auf die selbe Speicherstelle verweisen lassen.
Dabei ist der Vergleich nur schwer durchzuführen, denn diese Aussage gilt nur für Basis-Typen (char/int/double usw.).
In RPG/LE entspricht die Definition einer Variablen eines eigenen Basis-Typs.
-
genau diesen Code hab ich schon probiert. Was ich jetzt aber nich ganz versteh:
MYDS2 und MYDS1 haben jetzt den gleichen Speicherbereich. Zeigen also beide auf dieselbe Adresse. Warum kann ich jetzt nicht den Inhalt auch so belegen.
z.B. move 1234567890 nach MYFELD2. Jetzt müssten doch MYFELD und MYFELD2 den gleichen Inhalt haben oder?
Also warum kann ich dann nicht gleich MYfeld in der DS MYDS2 und MYDS1 definieren. MYFELD hat doch dann dieselbe Adresse und denselben Speicherbereich. Oder bring ich jetzt alles durcheinander??
PS: Sorry an alle Profis aber ich bin wie gesagt Anfänger.
Last edited by woodstock99; 09-11-07 at 15:13.
Grund: erweiterung
-
Dies liegt in der RPG-Konvention begründet, dass eben ein Name nur genau einmal definiert werden darf.
D MyDs1 DS
D MyField 10
d MyDs2 DS
d MyField 10 <== Unzulässig
Dem Compiler ist das schnurz egal, ob eine DS based ist oder nicht, für ihn sind das erst mal 2 verschiedene Variablen, da zur Laufzeit ja der Inhalt eines Pointers verändert werden kann und dann die Adresse eben NICHT mehr die selbe ist.
"qualified" umgeht das insofern, als dass der Name eben in Verbindung mit dem Strukturnamen eindeutig ist.
D MyDs1 DS
D MyField 10
d MyDs2 DS qualified
d MyField 10
MyField <= Feld der MyDs1
MyDs2.MyField <= spricht ja wohl für sich
-
@ Fuerchau : Vielen Dank für die ausführlichen Antworten.Jetzt bin ich auf jeden Fall etwas schlauer. Danke nochmal
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 11:58
-
By remo2010 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 23-11-06, 14:31
-
By DeadlyPunch in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 23-12-05, 10:17
-
By ASY in forum NEWSboard Programmierung
Antworten: 27
Letzter Beitrag: 23-08-05, 19:04
-
By Micha23 in forum IBM i Hauptforum
Antworten: 30
Letzter Beitrag: 17-12-04, 08:41
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