/* 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; | |
} |