在“ C的完整引用”一书中,提到char
默认情况下是无符号的。
但是我试图用GCC和Visual Studio对此进行验证。默认情况下将其视为已签名。
哪一个是正确的?
char
可以是无符号的,所以根据经验,可以使用an int
来读取using的值getchar()
,该值可能会返回EOF
。EOF
通常定义为-1
或其他负值,而unsigned
不是要存储在中。这是声明:extern int getchar();
顺便说一句,此建议也来自“ C:参考手册”一书。
char
案例中,您也必须使用它int
来存储返回值。