Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki işlev prototipi, hem giriş hem de çıkış dizeleri içindize] parametresiniiçinde tek bir [kullanır. Dize ilk olarak hasta girişini içerir ve daha sonra gösterildiği gibi doktor yanıtıyla üzerine yazılır:
void Analyze([in, out, string, size_is(STRSIZE)] char achInOut[]);
Bu örnek, hem giriş hem de çıkış için tek sayılmış bir dize kullanana benzer. Bu örnekte olduğu gibi , [size_is] özniteliği sunucuda ayrılan öğelerin sayısını belirler. [string] özniteliği, iletilen öğelerin sayısını belirlemek için saplamayı strlen çağırmaya yönlendirir.
İstemci, çağrıdan önce tüm belleği şu şekilde ayırır:
/* client */
char achInOut[STRSIZE];
...
gets_s(achInOut, STRSIZE); // get patient input
Analyze(achInOut);
printf("%s\n", achInOut); // display doctor response
Analyze işlevinin artık [string] özniteliğinin kullanılmadığı sayılan dize örneğinde olduğu gibi dönüş dizesinin uzunluğunu hesaplaması gerekmediğini unutmayın. Şimdi saplamalar uzunluğu gösterildiği gibi hesaplar:
/* server */
void Analyze(char *pchInOut)
{
...
Respond(response, pchInOut); // don't need to call strlen
return; // stubs handle size
}