峨眉山有做网站的电话,wordpress 开发 电商,表格制作教程,网络营销的宏观环境memcpy()函数#xff1a;可以理解为内存拷贝。
他的函数定义如下的 my_memcpy()函数相同。
下面这个函数是我的模拟实现#xff0c;现在让我们一起来学习一下这个函数的设计思想#xff1a;
void * my_memcpy(void * des, const void* src, size_t size)
{void * p des;…memcpy()函数可以理解为内存拷贝。
他的函数定义如下的 my_memcpy()函数相同。
下面这个函数是我的模拟实现现在让我们一起来学习一下这个函数的设计思想
void * my_memcpy(void * des, const void* src, size_t size)
{void * p des;while (size){*((char* )des) *((char *)src); des;src;size--;}return p;
}
1.形式参数和返回值使用泛型指针
我们想象我们自己如果是函数的设计者我们并不能知晓用户使用我们的函数复制什么类型的数据所以我们不能知晓用什么形式参数和返回值类型既然如此我们就可以使用泛型指针最后用户自己用来复制什么类型的数据由它自己选择这样我们的函数就可以做到通用了。
2.利用char* 类型的指针实现通用拷贝
当设计复制操作的时候我们遇到了同样的问题那就是我们不知道用户使用它复制什么类型的数据既然如此我们干脆加一个形式参数让用户自己告诉我们需要拷贝多少字节的数据我们不需要知道这是一些什么类型的数据我们只需要将这些数据一个字节一个字节的拷贝到另一个地方所以要做到每次只操作一个字节我们自然想到了char*的指针。
总结来说如果想要设计一个函数一定要想好它的通用性和安全性我们可以充分借助c语言中的各种特性来完成我们丰富的想法。