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