| #include <string.h> | |
| void *memmove(void *vdest, const void *vsrc, size_t count) | |
| { | |
| const char *src = vsrc; | |
| char *dest = vdest; | |
| if (dest <= src) { | |
| while (count--) { | |
| *dest++ = *src++; | |
| } | |
| } else { | |
| src += count - 1; | |
| dest += count - 1; | |
| while(count--) { | |
| *dest-- = *src--; | |
| } | |
| } | |
| return vdest; | |
| } |