void * mymemcpy( void * dest, const void * src, size_t count )
{
char * d = ( char * )dest;
const char * s = ( const char * )src;
int n = (count + 7 ) / 8 ; // count > 0 assumed
switch ( count & 7 )
{
case 0 : do { * d ++ = * s ++ ;
case 7 : * d ++ = * s ++ ;
case 6 : * d ++ = * s ++ ;
case 5 : * d ++ = * s ++ ;
case 4 : * d ++ = * s ++ ;
case 3 : * d ++ = * s ++ ;
case 2 : * d ++ = * s ++ ;
case 1 : * d ++ = * s ++ ;
} while ( -- n > 0 );
}
return dest;
}
一种另类的memcpy写法(在switch里写入一个dowhile)
最新推荐文章于 2022-03-11 16:11:55 发布