Nel libro "Riferimento completo di C" è menzionato che char
per impostazione predefinita è senza segno.
Ma sto provando a verificarlo con GCC e Visual Studio. Lo sta prendendo come firmato di default.
Quale è corretto?
char
può essere senza segno, come regola empirica usare un int
per leggere un valore usando getchar()
, che potrebbe restituire EOF
. EOF
viene generalmente definito come -1
o altro valore negativo, che la memorizzazione in un unsigned
non è ciò che si desidera. Ecco la dichiarazione: A extern int getchar();
proposito, questa raccomandazione proviene anche dal libro "C: A Reference Manual".
char
caso firmato , dovresti usare int
per memorizzare il valore di ritorno.