char vs. unsigned char

03/12/2009 - 04:32 von Peter Mairhofer | Report spam
Hi,

Spricht irgendwas dagegen fuer Strings prinzipiell "unsigned char" statt
"char" zu verwenden?

Wenn ich z.B. nicht nur ASCII verwende sondern z.B. ISO-8859 mit
Umlauten, dann verwende ich ja eigentlich die Zahlen bis 255 und nicht
-127 bis 127... Mit char waere es eben maschinenabhaengig ob sie von
-127 bis 127 oder von 0 bis 255 gehen.

Ebenso umgeht man das Problem mit ctype:
http://en.wikipedia.org/wiki/Ctype....rect_usage

Ich wuerds irgendwie logischer finden strings immer als "unsigned char"
zu definieren, wundere mich aber dass alle Stringfunktionen immer "char"
akzeptieren.

LG
Peter
 

Lesen sie die antworten

#1 Markus Wichmann
03/12/2009 - 09:55 | Warnen spam
Peter Mairhofer () schrieb:
Hi,

Spricht irgendwas dagegen fuer Strings prinzipiell "unsigned char" statt
"char" zu verwenden?

Wenn ich z.B. nicht nur ASCII verwende sondern z.B. ISO-8859 mit
Umlauten, dann verwende ich ja eigentlich die Zahlen bis 255 und nicht
-127 bis 127... Mit char waere es eben maschinenabhaengig ob sie von
-127 bis 127 oder von 0 bis 255 gehen.

Ebenso umgeht man das Problem mit ctype:
http://en.wikipedia.org/wiki/Ctype....rect_usage

Ich wuerds irgendwie logischer finden strings immer als "unsigned char"
zu definieren, wundere mich aber dass alle Stringfunktionen immer "char"
akzeptieren.




Hysterisch so gewachsen :-) .

Und zwar schreibt der C-Standard nicht vor, dass ASCII verwendet wird.
Das Basic Execution Character Set muss nicht mal ASCII-kompatibel sein.
Und von ISO-8859 steht erst recht nix drin. In meinem Falle würde es
dein Programm umbringen, das verwenden zu wollen, denn mein Extended
Execution Character Set ist UTF-8.

Aber gut, du willst ja wenigstens einen ISO-Zeichensatz verwenden. Mein
Programmier-Professor denkt über so etwas gar nicht erst nach und
schreibt seine Programme grundsàtzlich in CP-1252. *würg*

Das heißt also: Willst du ISO-8859 verwenden, musst du wissen (oder
nachprüfen), ob (oder dass) das System ISO-8859 versteht.

Außerdem ist doch extra für char eine Ausnahme gemacht worden:
Normalerweise ist ein Integer-Typ, an dem nicht dransteht, ob ein
Vorzeichen drin ist oder nicht, _immer_ vorzeichenbehaftet. Nur char ist
anders: Da kann es wenigstens manchmal sein, dass char vorzeichenlos
ist.

LG
Peter



HTH,
Markus
Nur weil ein Genie nix reißt, muß ja nun nicht gleich jeder Idiot
pausieren... Bully hats ja auch geschafft.

Ähnliche fragen