Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4460373
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2008-05-31 15:33:28

C语言库函数源代码】

【本程序在Dev C++ 4.9.9.2 下编译通过】

/*

   memmove() copies a source memory buffer to a destination memory buffer.This routine recognize overlapping buffers to avoid propogation.For cases where propagation is not a problem, memcpy() can be used.

   memmove()由src所指定的内存区域赋值count个字符到dst所指定的内存区域。src和dst所指内存区域可以重叠,但复制后src的内容会被更改。函数返回指向dst的指针。

*/

void * my_memmove(void * dst,const void * src,int 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);

}

int main()

{

   char a[12];

   puts((char *)my_memmove(a,"ammana_babi",16));

   system("pause");

   return 0;

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

chinaunix网友2008-11-20 10:55:11

我知道你。。。