memmove.c
1.16 KB
/*
=============================================================================
Copyright (C) 1997-1999 NINTENDO Co.,Ltd.
$RCSfile: memmove.c,v $
$Revision: 1.1.1.1 $
$Date: 2002/10/30 02:07:09 $
=============================================================================
関数名:memmove
-----------------------------------------------------------------------------
書式: #include <string.h>
void *memmove(void *dest, const void *src, size_t count);
引数: dest コピー先のポインタ
src コピー元のポインタ
count コピーするバイト数
戻り値:コピー先 dest のポインタ
説明: scr の内容を dest に count 分だけコピーする。
コピー元の領域とコピー先の領域が重なっていても正しくコピーされる。
-----------------------------------------------------------------------------
*/
#include "string.h"
void *memmove(void *dest, const void *src, size_t count)
{
char *d = (char *)dest, *s = (char *)src;
if (d == s) return dest;
if (d < s) {
while(count--) *d++ = *s++;
} else {
d += count-1;
s += count-1;
while(count--) *d-- = *s--;
}
return dest;
}