/Zc:wchar_t (wchar_t jest typem natywnym)

wchar_t Przeanalizuj jako wbudowany typ zgodnie ze standardem C++.

Składnia

/Zc:wchar_t[-]

Uwagi

Jeśli /Zc:wchar_t jest włączone, wchar_t jest słowem kluczowym wbudowanego typu całkowitego w kodzie skompilowanym jako C++. Jeśli /Zc:wchar_t- (z znakiem minus) jest określony lub w kodzie skompilowanym jako C, wchar_t nie jest typem wbudowanym. wchar_t Zamiast tego element jest definiowany jako element typedef dla unsigned short w nagłówku kanonicznym stddef.h. (Implementacja firmy Microsoft definiuje go w innym nagłówku, który jest dołączony przez stddef.h i inne standardowe nagłówki).

Nie zalecamy / Zc:wchar_t- ponieważ standard C++ wymaga wbudowanego wchar_t typu. typedef Użycie wersji może powodować problemy z przenośnością. Jeśli uaktualnisz starsze wersje programu Visual Studio i napotkasz błąd kompilatora C2664, ponieważ kod próbuje niejawnie przekonwertować unsigned shortwchar_t element na , zalecamy zmianę kodu w celu naprawienia błędu, zamiast ustawiania /Zc:wchar_t-.

Opcja /Zc:wchar_t jest domyślnie włączona w kompilacjach języka C++ i jest ignorowana w kompilacjach języka C. / permissive- opcja nie ma wpływu na /Zc:wchar_t.

Firma Microsoft implementuje wchar_t jako wartość niepodpisaną dwu bajtów. Mapuje na typ natywny __wchar_tspecyficzny dla firmy Microsoft. Aby uzyskać więcej informacji na temat wchar_tprogramu , zobacz Zakresy typów danych i typy podstawowe.

Jeśli piszesz nowy kod, który musi współdziałać ze starszym kodem, który nadal używa typedef wersji wchar_tprogramu , można zapewnić przeciążenia zarówno unsigned short dla odmian wchar_t, jak i __wchar_t , aby kod mógł być połączony z kodem skompilowanym z /Zc:wchar_t lub skompilowanym bez niego kodem. W przeciwnym razie należy podać dwie różne kompilacje biblioteki, jedną z i jedną bez /Zc:wchar_t włączone. Nawet w tym przypadku zaleca się kompilowanie starszego kodu za pomocą tego samego kompilatora, którego używa się do kompilowania nowego kodu. Nigdy nie mieszaj plików binarnych skompilowanych różnymi kompilatorami.

Po określeniu /Zc:wchar_t definiowane są symbole _WCHAR_T_DEFINED i _NATIVE_WCHAR_T_DEFINED. Aby uzyskać więcej informacji, zobacz Wstępnie zdefiniowane makra.

Jeśli kod używa funkcji globalnych com kompilatora, ponieważ /Zc:wchar_t jest teraz domyślnie włączony, zalecamy zmianę jawnych odwołań do comsupp.lib (z komentarz pragma lub w wierszu polecenia) na comsuppw.lib lub comsuppwd.lib. (Jeśli musisz skompilować plik /Zc:wchar_t-, użyj comsupp.lib. Jeśli dołączysz plik nagłówka comdef.h, zostanie określona poprawna biblioteka. Aby uzyskać informacje o obsłudze modelu COM kompilatora, zobacz Obsługa kompilatora COM.

wchar_t Wbudowany typ nie jest obsługiwany podczas kompilowania kodu C. Aby uzyskać więcej informacji na temat problemów ze zgodnością z językiem Visual C++, zobacz Zachowanie niezgodne.

Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio

  1. Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Language.

  3. Zmodyfikuj właściwość Traktuj wchar_t jako typ wbudowany.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

/Zc (Zgodność)