读 C 标准库 memcpy 函数 源码 感悟
看了memcpy 源码后,写了一个几乎一模一样的函数,写完后 感悟颇深。
下面贴出我的代码:
#include <cstring>
void * memcpy_My(void * dst,const void * src,size_t n){
char * s1 = ( char *)dst;
const char * s2 = (const char *)src;
for (; n > 0; n--,s1++,s2++)
{
*s1 = *s2;
}
return dst;
}
int _tmain(int argc, _TCHAR* argv[])
{
char a[] = "hello,world";
char b[] = "xxxxxxxxxxxxxxxxxxxxx";
memcpy_My((void *) b,(void *) a,strlen(a)+1);
printf("%s",b);
return 0;
}
打印结果是; hello,world
感悟: memcpy 是内存拷贝函数,将 src 的 n 个字节 拷入 dst 中,这就意味着 src 指向的 内容 不会被修改,所以 将 src 设置成
const void * src
使 src 不会被意外修改。
我是一直推荐推崇 使用 c