输入子例程
要表示宽字符代码值以及文件结束符(EOF)标记,wint_t 数据类型是必需的。 例如,考虑 fgetwc 子例程的情况,它返回一个宽字符代码值:
| 子例程返回值声明 | 描述 |
|---|---|
| wchar_t fgetwc (); | 如果 wchar_t 数据类型定义为 char 值,那么在 ISO8859-1 代码集中,上带两点的 y 符号无法与文件结束(EOF)标记区分开来。 0xFF 代码点是一个有效的字符(y 上加两点)。 因此,返回值就不可能为 wchar_t 数据类型。 这就需要一个既能容纳 EOF 标记,又能容纳代码集中所有代码点的数据类型。 |
| int fgetwc (); | 在某些机器上,int 数据类型被定义为 16 位。 当 wchar_t 数据类型大于 16 位时,该 int 值就不能表示全部的返回值。 |
因此需要 wint_t 数据类型来表示 fgetwc 子例程返回值。 wint_t 数据类型在 wchar.h 文件中定义。