다음 두 프로그램의 캐스팅이 wint_t
및 wchar_t
이라는 것이 표준에 맞습니까?`wint_t`와`wchar_t`로 어떻게 캐스팅합니까?
#include <locale.h>
#include <wchar.h>
int main(void)
{
setlocale(LC_CTYPE, "");
wint_t wc;
wc = getwchar();
putwchar((wchar_t) wc);
}
- wchar_t
(이 가상 구현은 BMP에 한정된다) signed short
이다
#include <locale.h>
#include <wchar.h>
#include <wctype.h>
int main(void)
{
setlocale(LC_CTYPE, "");
wchar_t wc;
wc = L'ÿ';
if (iswlower((wint_t) wc)) return 0;
return 1;
}
는 wint_t
가 signed int
및 WEOF == ((wint_t)-1)
이다의 경우를 고려한다. 그런 다음 (wint_t)U+FFFF
은 WEOF
과 구별 할 수없는 입니다. 예, U+FFFF
은 예약 된 코드 포인트이지만 은 여전히 충돌하는 것은 잘못되었습니다.
실제 구현에서는 결코 실현되지 않는다고 맹세하고 싶지 않습니다. 기존 구현에 대한 철저한 감사.
는 wchar_t
정확하게 BMP를 설명 할 수없는, 기술 환경에 또한 May wchar_t be promoted to wint_t?
wint_t에 대한 언급이 없습니다. – gnasher729