700
社区成员
发帖
与我相关
我的任务
分享
unsigned char a[512];
//dest和src都是指向a数组的指针,函数功能是实现数组内copy n个字节
unsigned int memmove( unsigned char *dest, unsigned char *src, unsigned int n )
{
if( dest+n>511 || src+n>511 )//overflow
return 0;
else
{
if( dest < src ) //改为 if( .....)
{ // {...}
while( n-- ) //直接接 src = src + ( n - 1 );
*dest++ = *src++; // dest = dest + ( n - 1 );
} // while() *dest--=*src--;
else //此处else可以省略吗?省略后直接接下面语句但else的意思不变
{
src = src + ( n - 1 );
dest = dest + ( n - 1 );
while( n-- )
*dest-- = *src--;
}
return 1;
}
}