21 lines
344 B
C
21 lines
344 B
C
|
/* Public domain. */
|
||
|
#include <stddef.h>
|
||
|
|
||
|
void *
|
||
|
memmove (void *dest, const void *src, size_t len)
|
||
|
{
|
||
|
char *d = dest;
|
||
|
const char *s = src;
|
||
|
if (d < s)
|
||
|
while (len--)
|
||
|
*d++ = *s++;
|
||
|
else
|
||
|
{
|
||
|
char *lasts = s + (len-1);
|
||
|
char *lastd = d + (len-1);
|
||
|
while (len--)
|
||
|
*lastd-- = *lasts--;
|
||
|
}
|
||
|
return dest;
|
||
|
}
|