memmove和memcpy。
src和dst指向的区域重叠,memmove仍可以正确处理
void *memmove(void *dst, const void *src, size_t count)
{
char *tmp, *s;
if (dst <= stc)
{
tmp = (char *)dst;
s = (char *)src;
while (count --)
{
*tmp++ = *s++;
}
}
else
{
tmp = (char *)dst + count;
s = (char *)src + count;
while (count--)
{
*--tmp = *--s;
}
}
return tmp;
}