[in, out, string]原型
下列函式原型會針對輸入和輸出字串使用單一 [in, out, string] 參數。 字串會先包含病患輸入,然後以醫生回應覆寫,如下所示:
void Analyze([in, out, string, size_is(STRSIZE)] char achInOut[]);
此範例類似于針對輸入和輸出採用單一計數位符串的字串。 如同該範例,[size_is] 屬性會決定伺服器上配置的元素數目。 [string] 屬性會指示存根呼叫 strlen ,以判斷傳輸的專案數目。
用戶端會在呼叫之前配置所有記憶體,如下所示:
/* client */
char achInOut[STRSIZE];
...
gets_s(achInOut, STRSIZE); // get patient input
Analyze(achInOut);
printf("%s\n", achInOut); // display doctor response
請注意,Analyze 函式不再必須計算傳回字串的長度,如同未使用 [string] 屬性的 counted-string 範例中所做的一樣。 現在存根會計算長度,如下所示:
/* server */
void Analyze(char *pchInOut)
{
...
Respond(response, pchInOut); // don't need to call strlen
return; // stubs handle size
}