-
Ein direktes Mapping gibt es so nicht, es ist allerdings relativ einfach:
short -> Pic s9(4) comp-4
long -> Pic s9(9) comp-4
int ist meist identisch mit long.
Float -> Pic s9(n)v9(m) comp-1
Double -> Pic s9(n)v9(m) comp-2
Decimal -> Pic s9(n)v9(m) comp-3
CHAR[n] -> pic x(n)
WCHAR[n] -> pic n(n)
*int -> usage pointer
*char usw.
Pointer müssen dann auf einen Bereich des entsprechenden Types verweisen.
Bei CHAR-Variablen (Strings) ist es halt häufig so, dass diese Nul-Terminiert sind, also am Ende ein x"00" enthalten.
Hier hat man ggf. bei Cobol ein Problem, da Strings in der Länge häufig nicht klar definiert sind. Man muss also die max. mögliche Länge vorsehen und beim Inhalt per Inspect die Zeichen vor dem x"00" zählen und kann dann per Referenzänderung, "Varname(1:Len)" auf die Variable zugreifen.
Bei der Übergabe setzt man den Inhalt dann per String-Funktion zusammen.
string
MyVar delimited by space
x"00" delimited by size
into MyCVar.
Wenn allerdings Leerzeichen vorkommen können und dürfen muss die Länge per Inspect ggf. rückwärts ermittelt werden und der String dann so aussehen:
string
MyVar(1:Len) delimited by size
x"00" delimited by size
into MyCVar.
Bei C-Strukturen ist also genau der Ursprungstyp (int, char, ...) zu kennen um das in Cobol nachzuvollziehen.
Das Problem hierbei ist, dass in C der Typ umdeklariert werden kann wie dein obiges Beispiel ja zeigt.
Man benötigt also tatsächlich die Ursprungsdeklaration was besonders dann schwierig wird, wenn diese auch noch kaskadiert sind.
Zusätzlich hat C noch die Eigenheit ggf. die einzelnen Felder einer Struktur auszurichten, also z.B. an geraden Adressen, teilbar durch 2, 4 oder 16.
der C-Programmierer braucht sich darum nicht zu kümmern, das macht ja der Compiler. Ähnliches gibt es auch für Cobol, wird aber selten verwendet.
Ausnahme sind Pointer, die sind immer an der nächste durch 16 teilbaren Adresse ausgerichtet.
Similar Threads
-
By Hellena Smejda in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 22-04-11, 06:20
-
By Xanas in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 12-01-07, 08:32
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 12:32
-
By Xanas in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 13-12-06, 14:38
-
By Uli Müller in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 09-11-06, 10:21
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