Bagikan melalui


Pointer Berbasis (C)

Khusus Microsoft

__based (Referensi C++)

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

Lihat juga

Deklarator dan Deklarasi Variabel