ARRAY[0..n] OF CHAR
abgelegt. Die darin abgelegte Zeichenkette
darf bis Zeichen umfassen. Ist sie kürzer als , dann
wird sie mit einem 0C Zeichen abgeschlossen. Ist die Zeichenkette
jedoch genau Zeichen lang, so ist sie nicht mit einem
0C Zeichen abgeschlossen. Die Amiga-Prozeduren erwarten jedoch,
dass jede Zeichenkette mit einem Nullbyte endet. Der Programmierer ist
also dafür verantwortlich, die Zeichenketten lang genug zu deklarieren!
Zeichenketten werden meist als Offene Feldparameter (``Open Arrays``)
an Prozeduren übergeben. Diese
besitzen eine
Besonderheit: Offene Feldparameter mit der Komponentengrösse 1
-- dies ist bei Zeichenketten der Fall -- enden nun
garantiert immer mit einem Nullbyte, wenn sie von der Prozedur
auf den Stack kopiert werden. Sie werden genau dann auf den
Stack kopiert, wenn sie Werte-Parameter sind und nicht die
Option (*$ CopyDyn:=FALSE *)
angegeben wurde.
Der Nutzen liegt darin, dass derartige Parameter direkt an das Betriebssystem übergeben werden können.
Im -System kann es nur nach einer Zuweisung an eine Variable oder beim direkten Manipulieren einzelner Feldelemente des ARRAYs vorkommen, dass eine Zeichenkette nicht mit 0C abgeschlossen ist.
Alle konstanten Zeichenketten werden vom Compiler automatisch mit einem Nullbyte abgeschlossen und auf einer geraden Adresse im Konstantenbereich abgelegt.
Bei der Übergabe konstanter Zeichenketten an einen offenen Feldparameter wird das abschliessende Nullbyte mitkopiert, sodass auch diese Zeichenketten ,,sicher`` sind. Der Wert von HIGH ist also gleich SIZE oder String.Length, jedoch mindestens 1. Hier heisst es aufzupassen: dies ist eine Neuerung gegenüber der Compiler-Version 3.3!.
Ebenso schliessen alle Prozeduren des Moduls String -- mit Ausnahme der Prozeduren, welche die Länge nicht verändern -- und Terminal.ReadLn nach der Verarbeitung die Zeichenkette mit einem Nullbyte ab.