我讀數來說,K & RC語言書getchar函數,下面的代碼片段:關於用C
char c;
while ((c = getchar()) != EOF) ...
有人提到了EOF(我認爲這是-1)是一種「帶外」迴歸來自getchar的值,不同於getchar可返回的所有可能的 值。
我的問題是以下幾點:
- 我跑我的程序與char和成功運行,和我 理解爲
signed char
可以存儲-127到+127,因此它可以檢查 爲-1是怎麼回事「帶外」? - 任何人都可以提供一個簡單的例子,如果我們使用
char c
而不是int c
上述程序片段將失敗嗎?
謝謝!
EOF不能爲0。雖然它並不必須是-1,但它必須是負的(C99,§7.19.1/ 3)。 –