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