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.
Prototipe fungsi berikut menggunakan satu [dalam, keluar, string] parameter untuk string input dan output. String pertama kali berisi input pasien dan kemudian ditimpa dengan respons dokter seperti yang ditunjukkan:
void Analyze([in, out, string, size_is(STRSIZE)] char achInOut[]);
Contoh ini mirip dengan yang menggunakan string hitungan tunggal untuk input dan output. Seperti contoh tersebut, atribut [size_is] menentukan jumlah elemen yang dialokasikan di server. Atribut [string] mengarahkan stub untuk memanggil strlen untuk menentukan jumlah elemen yang ditransmisikan.
Klien mengalokasikan semua memori sebelum panggilan sebagai:
/* client */
char achInOut[STRSIZE];
...
gets_s(achInOut, STRSIZE); // get patient input
Analyze(achInOut);
printf("%s\n", achInOut); // display doctor response
Perhatikan bahwa fungsi Analisis tidak lagi harus menghitung panjang string pengembalian seperti yang terjadi dalam contoh string yang dihitung di mana atribut [string] tidak digunakan. Sekarang stub menghitung panjang seperti yang ditunjukkan:
/* server */
void Analyze(char *pchInOut)
{
...
Respond(response, pchInOut); // don't need to call strlen
return; // stubs handle size
}