memcpy的实现

这个函数是标准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];
        }
    }
}

上一篇:memcpy、memmove与内存重叠


下一篇:C#集合中的Add与AddRange方法