c - 为什么用来保存getchar返回值的变量必须声明为int?

标签 c function

我是C语言初学者,最近研究了getchar函数,它可以从控制台或文件中接受一个字符,在输入时立即显示出来 我们需要按 Enter 键才能继续。

它返回他们读取的unsigned char。如果遇到文件结尾或错误,getchar() 函数返回 EOF。

我的问题是,当它返回unsigned char时,为什么它的返回值存储在int变量中?

请帮帮我。

最佳答案

正是因为那个 EOF 值。因为文件中的 char 可能是任何可能的 char 值,包括 C 字符串用于终止的空字符,getchar() 必须使用更大的整数类型来添加 EOF 值。

它只是碰巧为此目的使用了 int,但它可以使用至少 9 位的任何类型。

关于c - 为什么用来保存getchar返回值的变量必须声明为int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013167/

相关文章:

c++ - 当我运行此代码时,Dev C++ 不断崩溃。我不明白为什么

PHP/MySQL Function result in a variable, 电子邮件检查

c - 将 'typedef struct' 数组传递给函数

c - 使不产生输出

c - 在C中定义结构体数组?

function - Scheme - 有一个函数返回一个函数

python - 创建一个可以访问参数和函数的装饰器

javascript - 缩短 Javascript 函数的名称

C程序忽略包含sizeof的if语句

c - 在 Xcode 上编译时出现 (lldb)