memcpy内存拷贝问题求解?
void* memcpy( void *dst, const void *src, unsigned int len )
{
register char *d;
register char *s;
if (len == 0)
return dst;
if ( dst > src ) //为什么考虑dst > src 和dst < src 看不懂?
{
d = (char *)dst + len - 1;
s = (char *)src + len - 1;
while ( len >= 4 ) //为什么和4比较?
{
*d-- = *s--;
*d-- = *s--;
*d-- = *s--;
C++从入门到精通
6
*d-- = *s--;
len -= 4;
}
while ( len-- )
{
*d-- = *s--;
}
}
else if ( dst < src )
{
d = (char *)dst;
s = (char *)src;
while ( len >= 4 )
{
*d++ = *s++;
*d++ = *s++;
*d++ = *s++;
*d++ = *s++;
len -= 4;
}
while ( len-- )
{
*d++ = *s++;
}
}
return dst;
}
求高人解答。没看懂这代码