Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Khusus Microsoft
Untuk kompiler C Microsoft 32-bit dan 64-bit, pointer berbasis adalah offset 32-bit atau 64-bit dari basis pointer 32-bit atau 64-bit. Alamat berbasis berguna untuk mengontrol bagian tempat objek dialokasikan, sehingga mengurangi ukuran file yang dapat dieksekusi dan meningkatkan kecepatan eksekusi. Secara umum, formulir untuk menentukan pointer berbasis adalah
type __based( base ) deklarator
Varian "berdasarkan pointer" dari alamat berbasis memungkinkan spesifikasi pointer sebagai basis. Kemudian, pointer berbasis adalah offset ke bagian memori mulai dari awal pointer yang menjadi dasarnya. Pointer berdasarkan alamat pointer adalah satu-satunya bentuk kata kunci yang __based
valid dalam kompilasi 32-bit dan 64-bit. Dalam kompilasi sedemikian, mereka merupakan hasil pemindahan 32-bit atau 64-bit dari basis 32-bit atau 64-bit.
Salah satu penggunaan untuk pointer berdasarkan pointer adalah untuk pengidentifikasi persisten yang berisi pointer. Daftar tertaut yang terdiri dari pointer berdasarkan pointer dapat disimpan ke disk, lalu dimuat ulang ke tempat lain dalam memori, dengan pointer tetap valid.
Contoh berikut menunjukkan pointer berdasarkan pointer.
void *vpBuffer;
struct llist_t
{
void __based( vpBuffer ) *vpData;
struct llist_t __based( vpBuffer ) *llNext;
};
Pointer vpBuffer
diberi alamat memori yang dialokasikan di beberapa waktu kemudian dalam program. Daftar tertaut direlokasi secara relatif terhadap nilai vpBuffer
.
END Khusus Microsoft