[c] Eine Frage zu Function int alnum(int c)

BaYan

Mitglied
Hallo zusammmen,

ich habe eine allgemeine Frage zu der Funktion:

int isalnum(int c);

Wieso hat dieser Funktion ein Integer als Parameter. Wenn ich der Funktion eine Variable übergebe muss es nicht integer sein, damit es TRUE zurückliefert.

Gruß

BaYan
 
Hi.

Das liegt daran, das man sich die Möglichkeit offen halten möchte einen ungültigen (Zeichen-)Wert zu setzen, der einen Fehler anzeigt. Z.B. gibt die Funktion getc einen unsigned char gecastet in einen int zurück, ansonsten EOF. EOF darf nicht im normalen Wertebereich eines unsigned char liegen - sonst wäre es ja ein ganz normales Zeichen. EOF hat normalerweise den Wert -1. Um diesen Wert zurückgeben zu können kann kein char Typ verwendet werden (auch kein signed char, denn das wäre ja auch (gecastet in einen unsigned char) ein ganz normales Zeichen).

Alle Zeichenfunktionen in ctype.h verwenden deshalb Integer als Ein-/Ausgabe.

Gruß
 
Zurück