Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het volgende functieprototype maakt gebruik van één [in, , tekenreeks] parameter voor zowel de invoer- als uitvoertekenreeksen. De tekenreeks bevat eerst patiëntinvoer en wordt vervolgens overschreven met het antwoord van de arts, zoals wordt weergegeven:
void Analyze([in, out, string, size_is(STRSIZE)] char achInOut[]);
Dit voorbeeld is vergelijkbaar met de tekenreeks die één getelde tekenreeks heeft gebruikt voor zowel invoer als uitvoer. Net als in dat voorbeeld bepaalt het kenmerk [size_is] het aantal elementen dat is toegewezen op de server. Met het kenmerk [tekenreeks] wordt de stub om strlen- aan te roepen om het aantal verzonden elementen te bepalen.
De client wijst alle geheugen toe vóór de aanroep als:
/* client */
char achInOut[STRSIZE];
...
gets_s(achInOut, STRSIZE); // get patient input
Analyze(achInOut);
printf("%s\n", achInOut); // display doctor response
Houd er rekening mee dat de functie Analyseren niet langer de lengte van de retourtekenreeks moet berekenen, zoals in het voorbeeld van de getelde tekenreeks waarin het [tekenreeks] kenmerk niet is gebruikt. Nu berekenen de stubs de lengte zoals weergegeven:
/* server */
void Analyze(char *pchInOut)
{
...
Respond(response, pchInOut); // don't need to call strlen
return; // stubs handle size
}