In dem Buch "Complete Reference of C" wird erwähnt, dass char
es standardmäßig nicht signiert ist.
Ich versuche dies jedoch sowohl mit GCC als auch mit Visual Studio zu überprüfen. Es wird standardmäßig als signiert angenommen .
Welches ist korrekt?
char
vorzeichenlos sein kann, verwenden Sie als Faustregel a int
, um einen Wert mit zu lesen getchar()
, der möglicherweise zurückgegeben wird EOF
. EOF
wird normalerweise als -1
oder als anderer negativer Wert definiert, dessen Speicherung in einem unsigned
nicht das ist, was Sie wollen. Hier ist die Erklärung: extern int getchar();
Übrigens, diese Empfehlung stammt auch aus dem Buch "C: A Reference Manual".
char
Fall müssten Sie int
den Rückgabewert speichern.