Chinaunix首页 | 论坛 | 博客
  • 博客访问: 650211
  • 博文数量: 121
  • 博客积分: 4034
  • 博客等级: 上校
  • 技术积分: 1439
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-28 12:42
文章分类

全部博文(121)

文章存档

2017年(8)

2016年(10)

2013年(2)

2012年(3)

2011年(18)

2010年(80)

分类: C/C++

2012-02-27 16:19:54

自己实现的memcpy
没有考虑目标和源地址可能重复的情况,不知道除了这个方法之外不用汇编等方式还有没有更快的方法?至少我目前是想不出来:)
void *my_memcpy(void *dst, void* src, int size)
{
    int len = sizeof(long);
    long *pdst = (long*)dst;
    long *psrc = (long*)src;
    for (; size >= len; ++pdst, ++psrc, size -= len)
    {  
        *pdst = *psrc;
    }  
    for (len = size, size = 0; size < len; ++size)
    {  
        *((char*)pdst + size) = *((char*)psrc + size);
    }  
    return dst;
}
int main()
{
    char src[] = "hello", dst[10] = {'\0'};
    my_memcpy(dst, src, 5);
    printf("dst = %s\n", dst);
    return 0;
}
 
 

 
阅读(1539) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~