__w64

Kata kunci khusus Microsoft ini kedaluarsa. Dalam versi Visual Studio yang lebih lama dari Visual Studio 2013, ini memungkinkan Anda menandai variabel, sehingga ketika Anda mengkompilasi dengan /Wp64 , pengkompilasi akan melaporkan peringatan apa pun yang akan dilaporkan jika Anda mengkompilasi dengan kompilator 64-bit.

Sintaks

pengidentifikasi jenis__w64

Parameter

jenis
Salah satu dari tiga jenis yang dapat menyebabkan masalah dalam kode yang di-port dari 32-bit ke kompilator 64-bit: int, long, atau pointer.

identifier
Pengidentifikasi untuk variabel yang Anda buat.

Keterangan

Penting

Opsi pengkompilasi /Wp64 dan __w64 kata kunci tidak digunakan lagi di Visual Studio 2010 dan Visual Studio 2013 dan dihapus mulai dari Visual Studio 2013. Jika Anda menggunakan /Wp64 opsi pengkompilasi pada baris perintah, pengkompilasi mengeluarkan Peringatan Baris Perintah D9002. Kata __w64 kunci diabaikan secara diam-diam. Alih-alih menggunakan opsi dan kata kunci ini untuk mendeteksi masalah portabilitas 64-bit, gunakan pengkompilasi Microsoft C++ yang menargetkan platform 64-bit. Untuk informasi selengkapnya, lihat Mengonfigurasi Visual C++ untuk target x64 64-bit.

Typedef apa pun yang memilikinya __w64 harus 32 bit pada x86 dan 64 bit pada x64.

Untuk mendeteksi masalah portabilitas dengan menggunakan versi pengkompilasi Microsoft C++ yang lebih lama dari Visual Studio 2010, __w64 kata kunci harus ditentukan pada typedef apa pun yang mengubah ukuran antara platform 32 bit dan 64 bit. Untuk jenis seperti itu, __w64 harus muncul hanya pada definisi 32-bit dari typedef.

Untuk kompatibilitas dengan versi sebelumnya, _w64 adalah sinonim kecuali __w64 opsi pengompilasi /Za (Nonaktifkan ekstensi bahasa) ditentukan.

Kata __w64 kunci diabaikan jika kompilasi tidak menggunakan /Wp64.

Untuk informasi selengkapnya tentang porting ke 64-bit, lihat topik berikut:

Contoh

// __w64.cpp
// compile with: /W3 /Wp64
typedef int Int_32;
#ifdef _WIN64
typedef __int64 Int_Native;
#else
typedef int __w64 Int_Native;
#endif

int main() {
   Int_32 i0 = 5;
   Int_Native i1 = 10;
   i0 = i1;   // C4244 64-bit int assigned to 32-bit int

   // char __w64 c;  error, cannot use __w64 on char
}

Lihat juga

Kata kunci