/Zc:wchar_t(wchar_t를 네이티브 형식으로 인식)
C++ 표준에 따라 wchar_t
를 기본 제공 형식으로 구문 분석합니다.
구문
/Zc:wchar_t[-]
설명
/Zc:wchar_t 켜 wchar_t
진 경우 C++로 컴파일된 코드에서 기본 제공 정수 형식의 키워드입니다. /Zc:wchar_t-(빼기 기호 포함)를 지정하거나 C wchar_t
로 컴파일된 코드에서 기본 제공 형식이 아닌 경우 대신 정식 wchar_t
헤더 stddef.h에 for unsigned short
로 typedef
정의됩니다. (Microsoft 구현은 stddef.h 및 기타 표준 헤더에 포함된 다른 헤더에 정의합니다.)
C++ 표준에는 기본 제공 형식이 wchar_t
필요하므로 /Zc:wchar_t 권장하지 않습니다. typedef
버전을 사용하면 이식성 문제가 발생할 수 있습니다. 이전 버전의 Visual Studio에서 업그레이드하고 코드가 암시적으로 변환 unsigned short
wchar_t
하려고 하기 때문에 컴파일러 오류 C2664가 발생하는 경우 /Zc:wchar_t-를 설정하는 대신 코드를 변경하여 오류를 수정하는 것이 좋습니다.
/Zc:wchar_t 옵션은 C++ 컴파일에서 기본적으로 설정되며 C 컴파일에서는 무시됩니다. /permissive- 옵션은 /Zc:wchar_t 영향을 주지 않습니다.
Microsoft는 wchar_t
를 2바이트 부호 없는 값으로 구현합니다. Microsoft 특정 네이티브 형식에 매핑됩니다 __wchar_t
. 자세한 wchar_t
내용은 데이터 형식 범위 및 기본 형식을 참조하세요.
여전히 버전을 사용하는 typedef
이전 코드와 상호 운용해야 하는 새 코드를 작성하는 경우 코드가 /Zc:wchar_t 또는 코드 없이 컴파일된 코드로 컴파일된 코드와 연결될 수 있도록 해당 코드와 __wchar_t
변형 wchar_t
모두 unsigned short
에 대한 오버로드를 제공할 수 wchar_t
있습니다. 그렇지 않으면 /Zc:wchar_t 사용하도록 설정되지 않은 두 개의 서로 다른 라이브러리 빌드를 제공해야 합니다. 그러나 이 경우 새 코드를 컴파일하는 데 사용하는 것과 같은 컴파일러를 사용하여 이전 코드를 빌드하는 것이 좋습니다. 다른 컴파일러로 컴파일된 이진 파일을 혼합해서는 안 됩니다.
/Zc:wchar_t 지정되면 _WCHAR_T_DEFINED 및 _NATIVE_WCHAR_T_DEFINED 기호가 정의됩니다. 자세한 내용은 Predefined Macros을 참조하세요.
/Zc:wchar_t 기본적으로 설정되었으므로 코드에서 컴파일러 COM 전역 함수를 사용하는 경우 comsupp.lib(주석 pragma 또는 명령줄에서)에 대한 명시적 참조를 comsuppw.lib 또는 comsuppwd.lib로 변경하는 것이 좋습니다. (/Zc:wchar_t-로 컴파일해야 하는 경우 comsupp.lib를 사용합니다.) comdef.h 헤더 파일을 포함하는 경우 올바른 라이브러리가 지정됩니다. 컴파일러 COM 지원에 대한 자세한 내용은 컴파일러 COM 지원을 참조 하세요.
wchar_t
C 코드를 컴파일할 때는 기본 제공 형식이 지원되지 않습니다. Visual C++의 규칙 문제에 대한 자세한 내용은 비표준 동작을 참조 하세요.
Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
구성 속성>C/C++>언어 페이지를 선택합니다.
Treat wchar_t 기본 제공 Type 속성으로 수정합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- TreatWChar_tAsBuiltInType을(를) 참조하세요.