Bagikan melalui


Penunjuk Referensi

Penunjuk referensi adalah pointer paling sederhana dan memerlukan jumlah pemrosesan paling sedikit oleh stub klien. Ketika program klien meneruskan penunjuk referensi ke prosedur jarak jauh, penunjuk referensi selalu berisi alamat blok memori yang valid. Ini masih akan menunjuk ke blok memori yang sama ketika prosedur jarak jauh selesai. Pointer ini terutama digunakan untuk mengimplementasikan semantik referensi, dan untuk memungkinkan parameter [out] di C.

Dalam contoh berikut, nilai pointer tidak berubah selama panggilan, meskipun konten data di alamat yang ditunjukkan oleh pointer dapat berubah.

perubahan data pada alamat penunjuk referensi statis

Penunjuk referensi memiliki karakteristik berikut:

  • Ini selalu menunjuk ke penyimpanan yang valid dan tidak pernah memiliki nilai NULL.
  • Ini tidak pernah berubah selama panggilan dan selalu menunjuk ke penyimpanan yang sama sebelum dan sesudah panggilan.
  • Data yang dikembalikan dari prosedur jarak jauh ditulis ke dalam penyimpanan yang ada.
  • Penyimpanan yang ditujukkan oleh penunjuk referensi tidak dapat diakses oleh penunjuk lain atau nama lain dalam fungsi.

Gunakan atribut [ref] untuk menentukan penunjuk referensi dalam definisi antarmuka, seperti yang ditunjukkan dalam contoh berikut.

/* IDL file */
[ 
  uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
  version(1.0)
]
interface RefPtrInterface
{
  void RemoteFn([in, out, ref] char *pChar);
}

Contoh ini mendefinisikan parameter pChar sebagai penunjuk ke satu karakter, bukan array karakter. Ini adalah parameter [out] dan penunjuk referensi yang menunjuk ke memori yang akan diisi RemoteFn rutin server dengan data.