Code für Zeichen und Zeichenketten erzeugt der C/C++-Compiler wahlweise im EBCDIC-Format (Standard) oder ASCII-Format. Das gewünschte Format legen Sie mit der Option LITERAL-ENCODING der Compiler-Anweisung MODIFY-SOURCE-PROPERTIES fest.
MODIFY-SOURCE-PROPERTIES ..., LITERAL-ENCODING=*NATIVE|*ASCII-FULL
LITERAL-ENCODING=*NATIVE
Der Compiler erzeugt Code für Zeichen und Zeichenketten im EBCDIC-Format.*NATIVE ist Standard.
LITERAL-ENCODING=*ASCII-FULL
Der Compiler erzeugt Code für Zeichen und Zeichenketten im ASCII-Format. Außerdem wird das Präprozessor-Define _LITERAL_ENCODING_ASCII
auf 1 gesetzt. Sofern nicht das Präprozessor-Define _ASCII_SOURCE
auf 0 gesetzt ist (siehe "Steuerung von Originalfunktionen auf die zugehörigen ASCII-Varianten"), werden die EBCDIC-Bibliotheksfunktionen somit automatisch auf die zugehörigen ASCII-Funktionen gesteuert.
In POSIX legen Sie die ASCII-Codierung mit der folgenden Option fest:
-K literal_encoding_ascii_full
Wenn Sie ASCII-Unterstützung nutzen wollen, müssen Sie die Compiler-Anweisung MODIFY-MODULE-PROPERTIES mit den folgenden Angaben spezifizieren:
MODIFY-MODULE-PROPERTIES - ... LOWER-CASE-NAMES=*YES, - SPECIAL-CHARACTERS=*KEEP, - ...
Dadurch wird verhindert, dass
die Namen der ASCII-Funktionen (siehe "C-Bibliotheksfunktionen, die ASCII-Codierung unterstützen") auf acht Zeichen gekürzt werden,
in den Funktionsnamen Kleinbuchstaben in Großbuchstaben umgewandelt und die Zeichen „_“ durch „$“ ersetzt werden.
In POSIX spezifizieren Sie zu diesem Zweck:
-K llm_keep
-K llm_case_lower
Parameterübergabe und Umgebungsvariablen
Die Option LITERAL-ENCODING legt auch das Format fest, in dem diese Zeichenketten an die main-Funktion übergeben werden. Bei LITERAL-ENCODING= *ASCII-FULL werden die genannten Zeichenketten also standarmäßig im ASCII-Format an die main-Funktion übergeben. Sie können Anwendungen, die ins BS2000 portiert oder ursprünglich als EBCDIC-Anwendungen erstellt wurden, somit ohne Eingriffe in den Source-Code als ASCII-Anwendungen produzieren.