1 void *my_memcpy_byte(void *dst, const void *src, int n)
2 {
3 if (dst == NULL || src == NULL || n <= 0)
4 return NULL;
5
6 char * pdst = (char *)dst;
7 char * psrc = (char *)src;
8
9 if (pdst > psrc && pdst < psrc + n)
10 {
11 pdst = pdst + n - 1;
12 psrc = psrc + n - 1;
13 while (n--)
14 *pdst-- = *psrc--;
15 }
16 else
17 {
18 while (n--)
19 *pdst++ = *psrc++;
20 }
21 return dst;
22 }