1,memcpy:
c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
void *memcpy(void *dest, const void *src, size_t n);
Linux中:
1
2
3
4
5
6
7
8
9
10
11
|
void
*
memcpy
(
void
*dest,constvoid*src,size_tcount)
{
assert
(dest!=NULL && src!=NULL);
char
* tmp=dest;
const
char
* s=src;
for
(
size_t
i=0;i<count;i++)
{
tmp[i]=s[i];
}
return
dest;
}
|
微软中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
void
* __cdecl
memcpy
(
void
* dst,
const
void
* src,
size_t
count
)
{
void
*ret=dst;
#if defined(_M_MRX000)||defined(_M_ALPHA)||defined(_M_PPC)
{
extern
void
RtlMoveMemory(
void
*,
const
void
*,
size_t
count);
RtlMoveMemory(dst,src,count);
}
#else /*defined(_M_MRX000)||defined(_M_ALPHA)||defined(_M_PPC)*/
/*
*copy from lower addresses to higher addresses
*/
while
(count--){
*(
char
*)dst = *(
char
*)src;
dst = (
char
*)dst+1;
src = (
char
*)src+1;
}
#endif /*defined(_M_MRX000)||defined(_M_ALPHA)||defined(_M_PPC)*/
return
(ret);
}
|