/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_t
specifický pro Microsoft . Další informace o wchar_t
oblasti 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_t
ně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
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku Vlastností>konfigurace C/C++.>
Upravte vlastnost Treat wchar_t jako předdefinovaný typ.
Programové nastavení tohoto parametru kompilátoru
- Viz třída TreatWChar_tAsBuiltInType.