[in, out, string] Prototipe
Prototipe fungsi berikut menggunakan parameter [in, out, string] tunggal 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 counted-string 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
}
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