11 - memcpy

11 - memcpy

/* **
*memcpy - Copy source buffer to destination buffer
*
*Purpose:
*       memcpy() copies a source memory buffer to a destination memory buffer.
*       This routine does NOT recognize overlapping buffers, and thus can lead
*       to propogation.
*
*       For cases where propogation must be avoided, memmove() must be used.
*
*Entry:
*       void *dst = pointer to destination buffer
*       const void *src = pointer to source buffer
*       size_t count = number of bytes to copy
*
*Exit:
*       Returns a pointer to the destination buffer
*
*Exceptions:
******************************************************************************
*/

void   *  __cdecl memcpy (
  
void   *  dst,
  
const   void   *  src,
  size_t count
  )
{
  
void   *  ret  =  dst;
  
/*
  * copy from lower addresses to higher addresses
  
*/
  
while  (count -- ) {
    
* ( char   * )dst  =   * ( char   * )src;
    dst 
=  ( char   * )dst  +   1 ;
    src 
=  ( char   * )src  +   1 ;
  }

  
return (ret);
}

你可能感兴趣的:(11 - memcpy)