[archimedes] Re: Fragen zu Symbolen

  • From: Alexander Ausserstorfer <bavariasound@xxxxxxxxxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Tue, 09 Feb 2016 00:44:46 +0200

In message <49109b4e55.cms@xxxxxxxxxxxxxxxxxxxxxx>
          Carlos Michael Santillan <ml-archimedes@xxxxxxxxxx> wrote:

Zeichenketten in C werden mit einer 0, d.h. einem Byte mit dem Wert 0
abgeschlossen, wenn nicht geht so ziemlich jede Operation darauf schief.

Genau, ich nenne das Zeichen NULL. Wenn man in C einen Zeichenkette wie
"Hallo" (hier mit den Anführungszeichen) übergibt wird vom Kompiler nach
den o NULL (ASCII Wert 0) angehängt.

Das heißt dann aber wohl, wenn ich chars zeichenkette[13] reserviere,
werden eigentlich 14 Bytes (13 + NULL) reserviert. Diese Eigenwilligkeit
hat mir bisher niemand ausdrücklich gesagt.

Natürlich ist \r alias Carriage return also der Wagenrücklauf des

\r entspricht [0D] oder dezimal 13. Ich habe das so von den Templates
übernommen. Dort wird das anscheinend so gemacht. Zumindest werden die
ganzen Zeichenketten immer mit [0D] abgeschlossen.

BBC-BASIC schließt die Strings intern mit einem Byte 13 ab.

Ja, das hat wohl beim Acorn historische Gründe.

Scheinbar machen das BBC BASIC und C anders. Ist aber wohl egal. Die
Frage ist eher, was das Betriebssystem macht. Eigentlich müsste es dann
aber beide Endzeichen erkennen - 13 und NULL. D. h. es müsste egal sein.
Oder liege ich hier falsch? Und was macht man in Assembler?

A.

-- 
http://home.chiemgau-net.de/ausserstorfer/


Other related posts: