1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include <lib.h> void *memmove(void *dest, const void *src, register size_t n) { char *d = dest; const char *s = src; if (d == s) return d; if (d < s) { for (; n; n--) *d++ = *s++; } else { while (n) n--, d[n] = s[n]; } return dest; }