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 发布
本文介绍了一个名为mymemcpy的函数实现细节,该函数用于内存块的复制。通过逐字节拷贝的方式,mymemcpy可以将源地址src所指内存中的count个字节复制到目标地址dest所指向的内存中。代码展示了如何根据不同字节数进行循环复制,最终返回目标地址。

1969

被折叠的 条评论
为什么被折叠?



