码迷,mamicode.com
首页 > 其他好文 > 详细

memecpy源码

时间:2017-07-26 00:06:20      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:memcpy   nbsp   oid   复制   size_t   内存   else   size   没有   

void *memcpy(void *dst, const void *src, size_t len)  
{  
    if(NULL == dst || NULL == src){  
        return NULL;  
    }  
      
    void *ret = dst;  
      
    if(dst <= src || (char *)dst >= (char *)src + len){  
        //没有内存重叠,从低地址开始复制  
        while(len--){  
            *(char *)dst = *(char *)src;  
            dst = (char *)dst + 1;  
            src = (char *)src + 1;  
        }  
    }else{  
        //有内存重叠,从高地址开始复制  
        src = (char *)src + len - 1;  
        dst = (char *)dst + len - 1;  
        while(len--){  
            *(char *)dst = *(char *)src;  
            dst = (char *)dst - 1;  
            src = (char *)src - 1;  
        }  
    }  
    return ret;  
} 

 

memecpy源码

标签:memcpy   nbsp   oid   复制   size_t   内存   else   size   没有   

原文地址:http://www.cnblogs.com/dynas/p/7236777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!