반응형 C23 전역변수&extern - 프로그래머의 [적] 전역변수 - 안녕하세요.. extern에 대해 고민이 많으시군요.. 한때, 저도 고민 많이 햇답니다.. extern 2010. 8. 11. char ch = getchar();의 문제의 원인 많은 분이 잘못 생각하시고 있는 부분이 있는데, char ch = getchar();의 문제의 원인은 char가 signed인지 unsigned인지와 전혀 관련이 없습니다. 단지 문제의 결과 발생하는 현상이 char가 signed일 때와 unsigned일 때가 다를 뿐입니다. 자세히 설명하자면, 정상적인 경우: 맨페이지를 보면 getchar() 함수는 결과값을 unsigned char로 읽어서 int형으로 캐스팅한 결과를 리턴한다고 하고 있습니다. 결과를 제대로 int형으로 받으면 0 ~ 255의 정상적인 결과와 EOF라는 에러를 저장할 수 있습니다. 문제의 원인: getchar() 함수는 257가지의 결과가 존재합니다. (256가지 정상적 결과 + EOF) 이 범위는 (signed이든 unsigned이.. 2010. 8. 11. getc(), getch(), getchar() 카페 > 임베디드 시스템(Device.. | 별빛 http://cafe.naver.com/devctrl/1762 getchar()는 조금 조심스럽게 사용해야 한다. 실제적으로 반환하는 적당한 데이타는 8비트 char 타입이지만, 데이타를 받을 타입은 int 타입이어야 한다. 왜냐하면 8비트 데이타를 반환받고 나면 에러를 검출할 방법이 없기 때문이다. int 타입이 16비트나 32비트이기 때문에 EOF = (-1)을 에러의 검출에 사용할 수 있다. 그러므로 putchar()를 호출하기 전에 EOF를 먼저 테스트해야 한다. (-1)을 putchar()에 넘기면 문제는 일어나지 않는다. 이유는 (-1) = 255이고 255번 문자는 phantom space로 불리는 문자가 화면에 찍히고 이것은 정확히 "공백 .. 2010. 8. 11. 이전 1 2 다음 반응형