这个函数是标准C库里面的一个函数,挺简单的。面试的有人问,下面是一个简单的实现。
void my_memcpy(void *_des,const void *_src ,int len)
{
if(!_des || !_src || len ==0){//非法条件检查
return ;
}
char *src = (char *)_src;
char *des =(char *)_des;
if(des<src ||des >=(src+len)){//判断内存是否重叠
for(int i=0;i<len ;i++){
des[i]=src[i];
}
}
else{
for(int i=0;i<len;i++){
des[len-1-i]=src[len -1-i];
}
}
}