memmove.c 344 B

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