在glibc reference中我们找到了这样的词:
......像
这样的草率代码{ int c; ... while ((c = getc (fp)) < 0) ... }
必须重写......
为什么测试int的符号被称为&#34;草率代码&#34;在glibc参考?
答案 0 :(得分:2)
这与使用WEOF
宏有关。正如reference中已经提到的那样,(强调我的)
WEOF
不必与EOF
具有相同的价值,与EOF
不同,它还需要不为负。 [。 ..]
因此,检查< 0
可能是一个错误的决定,严格来说,应该根据WEOF
本身的返回值进行检查。