Sdílet prostřednictvím


/Zc:wchar_t (wchar_t je nativní typ)

Parsujte wchar_t jako předdefinovaný typ podle standardu C++.

Syntaxe

/Zc:wchar_t[-]

Poznámky

Pokud je zapnutý /Zc:wchar_t , wchar_t je klíčové slovo pro integrovaný integrální typ v kódu zkompilovaném jako C++. Pokud je zadán /Zc:wchar_t- (se znaménkem minus) nebo v kódu zkompilovaném jako C, wchar_t není integrovaný typ. wchar_t Místo toho je definován jako typedef for unsigned short v kanonické hlavičce stddef.h. (Implementace Microsoftu ji definuje v jiné hlavičce, která je součástí stddef.h a dalších standardních hlaviček.)

Nedoporučujeme /Zc:wchar_t- protože standard C++ vyžaduje, aby wchar_t byl integrovaný typ. typedef Použití verze může způsobit problémy s přenositelností. Pokud upgradujete ze starších verzí sady Visual Studio a narazíte na chybu kompilátoru C2664, protože se kód pokouší implicitně převést wchar_t na unsigned short, doporučujeme změnit kód, který chybu opraví, místo nastavení /Zc:wchar_t-.

Možnost /Zc:wchar_t je ve výchozím nastavení zapnutá v kompilacích jazyka C++ a je ignorována v kompilacích jazyka C. Možnost /permissive- nemá vliv na /Zc:wchar_t.

Microsoft implementuje wchar_t jako hodnotu bez znaménka dvou bajtů. Mapuje se na nativní typ __wchar_tspecifický pro Microsoft . Další informace o wchar_toblasti datových typů a základních typech.

Pokud napíšete nový kód, který musí spolupracovat se starším kódem, který stále používá typedef verzi , můžete poskytnout přetížení jak pro unsigned short __wchar_t varianty, tak i varianty wchar_t, aby váš kód mohl být propojen s kódem zkompilovaným pomocí /Zc:wchar_t nebo kód zkompilován bez wchar_tněj. Jinak byste museli poskytnout dvě různá sestavení knihovny, jedno s a jedno bez /Zc:wchar_t povoleno. Také v tomto případě doporučujeme sestavit starší kód pomocí stejného kompilátoru, jaký používáte ke kompilaci nového kódu. Nikdy nekombinujte binární soubory zkompilované různými kompilátory.

Při zadání /Zc:wchar_t jsou definovány symboly _WCHAR_T_DEFINED a _NATIVE_WCHAR_T_DEFINED. Další informace naleznete v předdefinovaných makrech.

Pokud váš kód používá globální funkce modelu COM kompilátoru, protože /Zc:wchar_t je ve výchozím nastavení zapnutý, doporučujeme změnit explicitní odkazy na comsupp.lib (buď z direktivy pragma komentáře, nebo na příkazovém řádku) na comsuppw.lib nebo comsuppwd.lib. (Pokud je nutné kompilovat pomocí /Zc:wchar_t-, použijte comsupp.lib.) Pokud zahrnete soubor hlavičky comdef.h, zadává se za vás správná knihovna. Informace o podpoře modelu COM kompilátoru naleznete v tématu Podpora modelu COM kompilátoru.

Předdefinovaný wchar_t typ není podporován při kompilaci kódu jazyka C. Další informace o problémech s dodržováním předpisů v jazyce Visual C++ najdete v tématu Nestandardní chování.

Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku Vlastností>konfigurace C/C++.>

  3. Upravte vlastnost Treat wchar_t jako předdefinovaný typ.

Programové nastavení tohoto parametru kompilátoru

Viz také

/Zc (shoda)