函数原型
void *memmove( void* dest, const void* src,size_t count );
功能
由st2指内存区域复制n个字节到st1所指内存区域 (抄至百度百科)
返回值
函数返回st1值
包含头文件
string.h
函数的使用
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[12];
memmove(str,"hello world",12);
printf("%s\n",str);
return 0;
}
函数的实现
void *memmove(void *st1,const void *st2,size_t n)
{
char *str1_t=(char *)st1;
const char *str2_t=(char *)st2;
if(str2_t > str1_t)
{
while(0<n)
{
*str1_t++=str2_t++;
--n;
}
}else
if(str2_t < str1_t) /*如果源地址小于目标地址,则执行反向拷贝*/
{
str1_t = str1_t+n-1; str2_t = str2_t+n-1;
while(0<n) { *str1_t-- = *str2_t--; --n; }
}
return st1;
}