1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| __inline
void * mymemcpy(void * dst, void const * src, size_t len)
{
int *lpDst = (int *)dst;
int IntDst = reinterpret_cast<int>(dst);
int const *lpSrc = (int const *)src;
uintptr_t IntSrc = reinterpret_cast<uintptr_t>(src);
if (!(IntSrc & 0xFFFFFFFC) && !(IntDst & 0xFFFFFFFC))
{
while (len >=4)
{
*lpDst++ = *lpSrc++;
len -= 4;
}
}
char *pcDst = (char *)lpDst;
char const *pcSrc = (char const *)lpSrc;
while (len--)
{
*pcDst++ = *pcSrc++;
}
return (dst);
} |
Partager