2011年计算机二级C++辅导实例编程(22)

2014-10-19 00:09:14 · 作者: · 浏览: 552

  自己实现的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;


  }


  编辑推荐: