现在的位置: 首页 > 综合 > 正文

一种另类的memcpy写法(在switch里写入一个dowhile)

2013年10月12日 ⁄ 综合 ⁄ 共 489字 ⁄ 字号 评论关闭

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
 (
--

>
 
0
);
    }


   
return
 dest;
}

抱歉!评论已关闭.