- 论坛徽章:
- 0
|
填空,实现memcpy
对齐问题的可能性比较小,因为是一个一个字节访问的
为什么要声明寄存器变量呢?
char *memcpy(void *dest,const void *src,unsigned int len)
{
register char *d;
register char *s;
if( _______ ) return dest;
if( _______ )
{
printf("overlap!\n");
}
if( _______ )
{
d=(char*)dest+len-1;
s=(char*)src+len-1;
while( ________ )
{
*d--=*s--;
*d--=*s--;
*d--=*s--;
*d--=*s--;
_________
}
while(len--)
*d--=*s--;
}else if( _______ )
{
d=(char*)dest;
s=(char*)src;
while ( _______ )
{
*d++=*s++;
*d++=*s++;
*d++=*s++;
*d++=*s++;
_________
}
while(len--)
*d++=*s++;
}
return dest;
}
[ 本帖最后由 scu_guzo 于 2009-9-28 21:31 编辑 ] |
|