Freigeben über


_MemFill( ), API-Bibliotheksroutine

Belegt einen Speicherbereich, beginnend an der Stelle, auf die ptr zeigt, mit length Kopien des Byte in character.

void _MemFill(void FAR *ptr, int character, unsigned int length)
void FAR *ptr;               /* Starting point for fill. */
int character;               /* Character for fill. */
unsigned int length;         /* How many bytes to fill. */

Beispiel

Das folgende Beispiel verwendet _MemFill( ) zum Duplizieren der Funktionalität der Visual FoxPro-Funktion REPLICATE( ).

Visual FoxPro-Code

SET LIBRARY TO MEMFILL 
x = xREPLICATE("x", 120)
? x
? LEN(x)

C-Code

#include <pro_ext.h>

FAR Example(ParamBlk FAR *parm)
{
   char FAR *rep;
   char c = *(char *) _HandToPtr(parm->p[0].val.ev_handle);

   rep = _Alloca((int) parm->p[1].val.ev_long + 1);

   _MemFill(rep, c, (int) parm->p[1].val.ev_long);

  rep[parm->p[1].val.ev_long] = '\0';
   _RetChar(rep);
}
FoxInfo myFoxInfo[] = {
   {"XREPLICATE", (FPFI) Example, 2, "C,I"},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Siehe auch

_MemCmp( ), API-Bibliotheksroutine | _MemMove( ), API-Bibliotheksroutine | _MemAvail( ), API-Bibliotheksroutine