Jenis Data Baru
Tiga kelas jenis data diperkenalkan untuk Windows 64-bit: jenis data presisi tetap, jenis presisi pointer, dan jenis presisi pointer tertentu. Jenis-jenis ini ditambahkan ke lingkungan pengembangan untuk memungkinkan pengembang mempersiapkan Windows 64-bit. Jenis-jenis ini berasal dari bilangan bulat bahasa C dasar dan jenis panjang. Oleh karena itu, Anda dapat menggunakan jenis data ini dalam kode yang Anda kompilasi dan uji pada Windows 32-bit, lalu mengkompilasi ulang dengan pengkompilasi 64-bit saat menargetkan Windows 64-bit.
Bahkan untuk aplikasi yang hanya menargetkan Windows 32-bit, mengadopsi jenis data baru ini membuat kode Anda lebih kuat. Untuk menggunakan jenis data ini, Anda harus memindai kode Anda untuk penggunaan pointer, polimorfisme, dan definisi data yang berpotensi tidak aman. Misalnya, ketika variabel berjenis ULONG_PTR, jelas bahwa variabel tersebut akan digunakan untuk transmisi pointer untuk operasi aritmatika atau polimorfisme. Tidak dimungkinkan untuk menunjukkan penggunaan tersebut secara langsung dengan menggunakan jenis data yang lebih lama. (Anda dapat melakukan ini secara tidak langsung dengan menggunakan penamaan jenis turunan atau notasi Hungaria, tetapi kedua teknik rentan terhadap kesalahan.)
Semua jenis data ini dideklarasikan dalam BaseTsd.h. Untuk informasi selengkapnya, termasuk definisi jenis data ini, lihat Jenis Data Windows.
Presisi Tetap
Jenis data presisi tetap memiliki panjang yang sama di Windows 32 dan 64-bit. Untuk membantu Anda mengingat hal ini, presisinya adalah bagian dari nama jenis data. Berikut ini adalah jenis data presisi tetap.
Istilah | Deskripsi |
---|---|
DWORD32 |
Bilangan bulat tidak bertanda 32-bit |
DWORD64 |
Bilangan bulat tidak bertanda 64-bit |
INT32 |
Bilangan bulat bertanda 32-bit |
INT64 |
Bilangan bulat bertanda 64-bit |
LONG32 |
Bilangan bulat bertanda 32-bit |
LONG64 |
Bilangan bulat bertanda 64-bit |
UINT32 |
INT32 tidak ditandatangani |
UINT64 |
INT64 tidak ditandatangani |
ULONG32 |
LONG32 tidak ditandatangani |
ULONG64 |
LONG64 tidak ditandatangani |
Presisi Penunjuk
Ketika presisi pointer berubah (yaitu, karena menjadi 32 bit pada Windows 32-bit dan 64 bit dengan Windows 64-bit), jenis data presisi pointer mencerminkan presisi yang sesuai. Oleh karena itu, aman untuk mentransmisikan pointer ke salah satu jenis ini saat melakukan aritmatika pointer; jika presisi pointer adalah 64 bit, jenisnya adalah 64 bit. Jenis hitungan juga mencerminkan ukuran maksimum yang dapat dirujuk oleh penunjuk. Berikut ini adalah jenis presisi dan hitungan pointer.
Istilah | Deskripsi |
---|---|
DWORD_PTR |
Jenis panjang yang tidak ditandatangani untuk presisi penunjuk. |
HALF_PTR |
Setengah ukuran pointer. Gunakan dalam struktur yang berisi pointer dan dua bidang kecil. |
INT_PTR |
Jenis bilangan bulat yang ditandatangani untuk presisi pointer. |
LONG_PTR |
Jenis panjang yang ditandatangani untuk presisi pointer. |
SIZE_T |
Jumlah maksimum byte yang dapat dirujuk oleh pointer. Gunakan untuk hitungan yang harus mencakup rentang penuh penunjuk. |
SSIZE_T |
Ditandatangani SIZE_T. |
UHALF_PTR |
HALF_PTR yang tidak ditandatangani. |
UINT_PTR |
INT_PTR yang tidak ditandatangani. |
ULONG_PTR |
LONG_PTR yang tidak ditandatangani. |
Jenis Pointer-Precision Tertentu
Jenis pointer baru berikut secara eksplisit mengukur pointer. Berhati-hatilah saat menggunakan pointer dalam kode 64-bit: Jika Anda mendeklarasikan pointer menggunakan jenis 32-bit, sistem operasi membuat pointer dengan memotong pointer 64-bit. (Semua pointer adalah 64 bit pada Windows 64-bit.)
Istilah | Deskripsi |
---|---|
POINTER_32 |
Penunjuk 32-bit. Pada Windows 32-bit, ini adalah penunjuk asli. Pada Windows 64-bit, ini adalah penunjuk 64-bit terpotok. |
POINTER_64 |
Penunjuk 64-bit. Pada Windows 64-bit, ini adalah penunjuk asli. Pada Windows 32-bit, ini adalah penunjuk 32-bit yang diperluas tanda tangan. Perhatikan bahwa tidak aman untuk mengasumsikan status bit pointer tinggi. |
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