2016-11-23 1 views
0

EOF이 음수 여야한다는 표준으로 작성 되었습니까? 반대로 WEOF은 음수 일 필요는 없습니다. 왜? charwchar_t을 정의하는 표준과 완벽하게 정상적으로 때문에 wchar_t의 상황은, 일반 char에서 (char에서 int로 자동 승진 역할을하는 경우를 제외하고) 다른 어떤 방법이 아니어야합니다. 따라서 유사한 규칙이 적용되어야합니다. 기준으로부터의 GLIBC표준에서 EOF가 음수가되어야합니까?

일부 인용 : wchar_t 인해 파라미터로 승진 charwint_tint가 정의되어야 타입을 정의

경우.

예, 부정적 보장 wchar_t

답변

1

char로 정의하는 합법적 인 것입니다. 헤더는 여러 매크로를 정의하고, 입력과 출력을 수행하기위한 세 가지 유형의 많은 기능을 선언 C11

7.21 입력/출력을

7.21.1 소개

1을 참조하십시오.

3 ... 타입 int와 음수

+0

** ** 미리 근거 이것을 위해 무엇인가와 정수 상수 표현으로 확장

EOF

? 왜 WEOF가 부정적 일 필요는 없는가? –

+1

@IgorLiferenko : 이론적 근거가 없습니다. 역사적으로 기대했던 것과 표준은 1989 년 이후로 그랬다. 물론'getchar()'과 친구가 반환 한 유효한 문자 값과 다른 'EOF'의 부호를 만든다. –

+0

@JonathanLeffler 역사에 대해 말하는 것을 중지하십시오. 그 사람들이 바보 같은 짓 한거야? 나는 진짜 원인을 이해하려고 노력하고있다. –