memove函数及 memcpy实现

memmove函数原型:
void* memmove(void* dest;const void* src,size_t n)
{
assert((dest != 0)&&(src != 0));
char* p_dest = (char*) dest;
char* p_src = (char*) src;
int i = 0;
if( (p_dest < p_src) || p_dest > (p_src + n) )
{
for( i = 0; i < n; i++)
{
*p_dest++ = *p_src++ ;
}
}
else
{
p_dest+= n;
p_src += n;
for( i = 0; i < n; i++)
{
p_src – ;
p_dest --;
*p_dest = *p_src;
}
}
return dest;
}

void* memcpy(void* desc,const void* src,size_t size)
{
if((desc == NULL) && (src == NULL))
{
return NULL;
}
unsigned char desc1 = (unsigned char)desc;
unsigned char src1 = (unsigned char)src;
while(size-- >0)
{
*desc1++ = *src1++;
}
return desc;
}

猜你喜欢

转载自blog.csdn.net/weixin_37603532/article/details/89949250
今日推荐