No livro "Referência completa de C", é mencionado que, char
por padrão, não está assinado.
Mas estou tentando verificar isso com o GCC e com o Visual Studio. Está tomando como assinado por padrão.
Qual deles está correto?
char
pode ser não assinado, como regra geral use um int
para ler um valor usando getchar()
, que pode retornar EOF
. EOF
geralmente é definido como -1
ou outro valor negativo, que armazenar em um unsigned
não é o que você deseja. Aqui está a declaração: extern int getchar();
BTW, esta recomendação também vem do livro "C: A Reference Manual".
char
caso assinado , você precisaria usar int
para armazenar o valor de retorno.