나는 Dennis Ritchie의 C Programming Language 책에서 int
EOF를 보유하기 위해 변수에 사용되어야합니다 char
. EOF 값을 보유 할 수있을만큼 충분히 커야 합니다. 그러나 다음 코드는 정상적으로 작동합니다.
#include<stdio.h>
main() {
char c;
c=getchar();
while(c!=EOF) {
putchar(c);
c=getchar();
}
}
더 이상 입력이 없으면 getchar
EOF를 반환합니다. 위의 프로그램에서 c
char 유형 의 변수는 변수를 성공적으로 보유 할 수 있습니다.
왜 이것이 작동합니까? 위에서 언급 한 책의 설명에 따라 코드가 작동하지 않아야합니다.
0xff
. 결과 저장 getchar()
에서 int
해결할 수있는 문제 그 문제를. 귀하의 질문은 comp.lang.c FAQ의 질문 12.1과 본질적으로 동일 하며 훌륭한 자료입니다. (또한 main()
이어야하며 마감 전에 int main(void)
추가하는 것이 아프지 않을 것 입니다.)return 0;
}