Mailinglist Archive: opensuse-de (6551 mails)

< Previous Next >
Re: Was ist eine gueltige Message-ID?
Am Sam, 2002-08-03 um 22.56 schrieb Bernd Brodesser:
* Jan Trippler schrieb am 03.Aug.2002:
On Sam, 03 Aug 2002 at 20:09 (+0200), Thorsten Haude wrote:
* Jan Trippler <Jan.Trippler@xxxxxxxxxxx> [02-08-03 16:53]:

Es geht doch nur darum, daß diese ganze C-Eigenheit mit dem
Zeiger-auf-Chararacter offensichtlich und bekannterweise nicht
wasserdicht ist. Darum sollte man bei ihrer Benutzung keine Haare
spalten, sondern auf Nummer sicher gehen.

Ein String ist immer ein Zeiger auf ein Byte, bei jeder
Programmierpsrache.
Kommt darauf an, wie Du das meinst. Man kann String auch als abstraktes
Konzept oder als Datentyp zur Verarbeitung von textuellen Zeichenketten
auffassen.

Es ist nur manchmal gut vor dem Anwender
versteckt, aber wie soll man sonst ein String definieren, wenn nicht
als Zeiger?
S.o.

Viele Programmiersprachen kennen derartige Datentypen, deren Details ein
Programmierer nicht kennen soll/darf/muss.

Pascal/Modula Strings z.B. führen Längenfelder mit sich und entsprechen
inetwa folgendem C-Struct

struct String {
size_t len ;
char *char_array;
}

Auch das C++ string<T>-Template arbeitet nach ähnlichen Muster.

Vorteil: Anders als in C braucht man sich nicht um terminierende \0-en
zu kümmern:
Nachteil: In der Regel deutlich höherer Verwaltungsoverhead, spürbare
Geschwindigkeitseinbussen und Probleme bei Low-Level IO
(Fehlt in der Pascal-Sprachdefinition völlig).

Ralf



< Previous Next >
Follow Ups