memmove和memcpy的区别

来源:互联网 发布:js遍历list集合 编辑:程序博客网 时间:2024/04/29 09:48


  • xf_pan用户头像
  • xf_pan
  • (问题报告)
  • 等 级:
#9楼 得分:0回复于:2008-10-10 17:41:51
看看源程序就明白了。。
不过在WINDOWS下,,两者好像没区别,,可能跟具体实现由关系。。
C/C++ code
void * __cdecl memcpy ( void * dst,const void * src,size_t count){ void * ret = dst; while (count--) { *(char *)dst = *(char *)src; dst = (char *)dst + 1; src = (char *)src + 1; } return(ret);}void * __cdecl memmove ( void * dst,const void * src,size_t count){ void * ret = dst; if (dst <= src || (char *)dst >= ((char *)src + count)) { while (count--) { *(char *)dst = *(char *)src; dst = (char *)dst + 1; src = (char *)src + 1; } } else { dst = (char *)dst + count - 1; src = (char *)src + count - 1; while (count--) { *(char *)dst = *(char *)src; dst = (char *)dst - 1; src = (char *)src - 1; } } return(ret);}
 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP

  • jia_xiaoxin用户头像
  • jia_xiaoxin
  • 等 级:
#10楼 得分:0回复于:2008-10-10 17:45:01
在linux系统下,他们是有区别的
但是在windows系统下,并不是象MSDN上所说的那样。其实没有区别。

原创粉丝点击