Dalam buku "Referensi Lengkap C" disebutkan bahwa char
secara default tidak ditandatangani.
Tetapi saya mencoba memverifikasi ini dengan GCC serta Visual Studio. Itu diambil sebagai ditandatangani secara default.
Yang mana yang benar?
char
dapat ditandatangani, sebagai aturan praktis gunakan a int
untuk membaca nilai menggunakan getchar()
, yang mungkin kembali EOF
. EOF
biasanya didefinisikan sebagai -1
atau nilai negatif lainnya, yang menyimpan dalam unsigned
bukan apa yang Anda inginkan. Inilah deklarasi: extern int getchar();
BTW, rekomendasi ini juga berasal dari buku "C: A Reference Manual".
char
kasus yang ditandatangani , Anda harus menggunakan int
untuk menyimpan nilai pengembalian.