memmove函数的实现

下面是memmove函数的实现代码:

 

void memmove(void *dest, void const *src, size_t n)

{

       register char *dp = (char*)dest;

       register char *sp = (char*)dest;

       if (dp == sp)

       {

              return;

       }

       else if (dp < sp)

       {

              while(n-- > 0)

                     *dp++ = *sp++;

       }

       else

       {

              // we should do the copy reversely

              dp += n;

              sp += n;

              while (n-- > 0)

                     *--dp = *--sp;

       }

}

 

你可能感兴趣的:(memmove函数的实现)