memmove.c
资源名称:c.rar [点击查看]
上传用户:shmaik
上传日期:2014-06-01
资源大小:45093k
文件大小:0k
源码类别:

VC书籍

开发平台:

C/C++

  1. #include <string.h>
  2. /*lint -e613
  3. memmove is defined here because some vendors don't provide it at all
  4. and others do poor job (like calling malloc) 
  5. */
  6. void *memmove(void *s1, const void *s2, size_t n) {
  7. unsigned char *cs1;
  8. const unsigned char *cs2;
  9. if (n <= 0)
  10. return s1;
  11. cs1 = s1;
  12. cs2 = s2;
  13. if (cs1 < cs2)
  14. do
  15. *cs1++ = *cs2++;
  16. while (--n);
  17. else {
  18. cs1 += n;
  19. cs2 += n;
  20. do
  21. *--cs1 = *--cs2;
  22. while (--n);
  23. }
  24. return s1;
  25. }