W książce „Complete Reference of C” jest wspomniane, że chardomyślnie jest bez znaku.
Ale próbuję to zweryfikować za pomocą GCC, a także Visual Studio. Domyślnie przyjmuje to jako podpisane .
Który jest prawidłowy?
charmoże być bez znaku, z reguły użyj intdo odczytania wartości, używając getchar(), która może zwrócić EOF. EOFjest zwykle definiowana jako -1lub inna wartość ujemna, której przechowywanie w pliku unsignednie jest tym, czego chcesz. Oto deklaracja: extern int getchar();BTW, to zalecenie pochodzi również z książki „C: A Reference Manual”.
charprzypadku podpisanego przypadku musiałbyś użyć intdo przechowywania wartości zwracanej.