No livro "Referência completa de C", é mencionado que, charpor 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?
charpode ser não assinado, como regra geral use um intpara ler um valor usando getchar(), que pode retornar EOF. EOFgeralmente é definido como -1ou outro valor negativo, que armazenar em um unsignednã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".
charcaso assinado , você precisaria usar intpara armazenar o valor de retorno.