| 2 | |
| 3 | #include <string.h> |
| 4 | void *memmove(void *vdest, const void *vsrc, size_t count) |
| 5 | { |
| 6 | const char *src = vsrc; |
| 7 | char *dest = vdest; |
| 8 | |
| 9 | if (dest <= src) { |
| 10 | while (count--) |
| 11 | *dest++ = *src++; |
| 12 | } else { |
| 13 | src += count - 1; |
| 14 | dest += count - 1; |
| 15 | while (count--) |
| 16 | *dest-- = *src--; |
| 17 | } |
| 18 | return vdest; |
| 19 | } |
no outgoing calls