Bagikan melalui


/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_tasli 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_tdan __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

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman Properti>Konfigurasi C/C++>Bahasa.

  3. Ubah properti Perlakukan wchar_t sebagai Jenis Bawaan.

Untuk mengatur opsi pengkompilasi ini secara terprogram

Baca juga

/Zc (Kesuaian)