1 /* Public domain. */ 2 #include <stddef.h> 3 4 void * 5 memmove (void *dest, const void *src, size_t len) 6 { 7 char *d = dest; 8 const char *s = src; 9 if (d < s) 10 while (len--) 11 *d++ = *s++; 12 else 13 { 14 char *lasts = s + (len-1); 15 char *lastd = d + (len-1); 16 while (len--) 17 *lastd-- = *lasts--; 18 } 19 return dest; 20 } 21