/Zc:wchar_t (wchar_t Jenis Asli)
Uraikan wchar_t
sebagai jenis bawaan sesuai dengan standar C++.
Sintaks
/Zc:wchar_t[-]
Keterangan
Jika /Zc:wchar_t aktif, wchar_t
adalah kata kunci untuk jenis integral bawaan dalam kode yang dikompilasi sebagai C++. Jika /Zc:wchar_t- (dengan tanda minus) ditentukan, atau dalam kode yang dikompilasi sebagai C, wchar_t
bukan jenis bawaan. Sebaliknya, wchar_t
didefinisikan sebagai typedef
untuk unsigned short
di header kanonis stddef.h. (Implementasi Microsoft mendefinisikannya di header lain yang disertakan oleh stddef.h dan header standar lainnya.)
Kami tidak merekomendasikan /Zc:wchar_t- karena standar C++ memerlukan wchar_t
jenis bawaan. typedef
Menggunakan versi dapat menyebabkan masalah portabilitas. Jika Anda meningkatkan dari versi Visual Studio sebelumnya dan mengalami kesalahan pengkompilasi C2664 karena kode mencoba mengonversi wchar_t
secara implisit ke unsigned short
, kami sarankan Anda mengubah kode untuk memperbaiki kesalahan, alih-alih mengatur /Zc:wchar_t-.
Opsi /Zc:wchar_t aktif secara default dalam kompilasi C++, dan diabaikan dalam kompilasi C. Opsi /permissive- tidak memengaruhi /Zc:wchar_t.
Microsoft mengimplementasikan wchar_t
sebagai nilai dua byte yang tidak ditandatangani. Ini memetakan ke jenis __wchar_t
asli khusus Microsoft . Untuk informasi selengkapnya tentang wchar_t
, lihat Rentang Tipe Data dan Jenis Dasar.
Jika Anda menulis kode baru yang harus beroperasi dengan kode lama yang masih menggunakan typedef
versi wchar_t
, Anda dapat memberikan kelebihan beban untuk unsigned short
variasi wchar_t
dan __wchar_t
, sehingga kode Anda dapat ditautkan dengan kode yang dikompilasi dengan /Zc:wchar_t atau kode yang dikompilasi tanpanya. Jika tidak, Anda harus menyediakan dua build pustaka yang berbeda, satu dengan dan satu tanpa /Zc:wchar_t diaktifkan. Bahkan dalam hal ini, kami sarankan Anda membuat kode yang lebih lama dengan menggunakan pengkompilasi yang sama dengan yang Anda gunakan untuk mengkompilasi kode baru. Jangan pernah mencampur biner yang dikompilasi dengan pengkompilasi yang berbeda.
Ketika /Zc:wchar_t ditentukan, simbol _WCHAR_T_DEFINED dan _NATIVE_WCHAR_T_DEFINED ditentukan. Untuk informasi selengkapnya, lihat Makro yang telah ditentukan sebelumnya.
Jika kode Anda menggunakan fungsi global COM compiler, karena /Zc:wchar_t sekarang aktif secara default, kami sarankan Anda mengubah referensi eksplisit ke comsupp.lib (baik dari pragma komentar atau di baris perintah) menjadi comsuppw.lib atau comsuppwd.lib. (Jika Anda harus mengkompilasi dengan /Zc:wchar_t-, gunakan comsupp.lib.) Jika Anda menyertakan file header comdef.h, pustaka yang benar ditentukan untuk Anda. Untuk informasi tentang dukungan COM kompilator, lihat Dukungan COM Compiler.
Jenis wchar_t
bawaan tidak didukung saat Anda mengkompilasi kode C. Untuk informasi selengkapnya tentang masalah kesuaian dengan Visual C++, lihat Perilaku Nonstandar.
Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman Properti>Konfigurasi C/C++>Bahasa.
Ubah properti Perlakukan wchar_t sebagai Jenis Bawaan.
Untuk mengatur opsi pengkompilasi ini secara terprogram
- Lihat TreatWChar_tAsBuiltInType.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk