当前位置: 首页 > article >正文

【C/C++】memcpy函数的模拟实现

零.导言

       上一篇博客我们学习了memcpy函数,不妨我们现在尝试模拟实现memcpy函数的功能。


一.实现memcpy函数的要点

  • memcpy函数是一种C语言内存函数,可以按字节拷贝任意类型的数组,因此我们自定义的模拟函数需要两个无类型的指针参数
  • 又因为要确认拷贝的字节数,所以还需要一个size_t类型的参数

二.memcpy函数的模拟实现

        其实很简单,只需满足以上两个条件,代码如下:

void my_memcpy(const void* dest,const void* sourse,size_t num)
{
	while (num)
	{
		*(char*)dest = *(char*)sourse;
		dest = (char*)dest + 1;
		sourse = (char*)sourse + 1;
		num--;
	}
}

        这样,模拟的函数就可以起到和原函数相近的效果,验证:


.memcpy函数模拟实现的意义

         加深了我们对此函数的理解,深入的学习了memcpy函数的本质,对日后新知识的学习与理解有帮助。


四.相关链接

        【C/C++】字符/字符串函数(1)——由string.h提供-CSDN博客

        【C/C++】memcpy函数的使用-CSDN博客



http://www.kler.cn/a/380823.html

相关文章:

  • SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“
  • Java中的System类、Runtime类、Math类、BigInteger类、BigDecimal类、Random类
  • web实操2——idea创建普通web项目
  • 你知道Mac也能拥有丰富的右键菜单栏吗?
  • 又一次安装autoware.universe的过程
  • 物联网赋能的人工智能图像检测系统
  • Mac OS 配置Docker+Mysql
  • C++中的继承——第一篇
  • ​CSS之三
  • 【OJ题解】C++实现字符串大数相乘:无BigInteger库的字符串乘积解决方案
  • vue中强制更新视图
  • 网络信息系统的整个生命周期
  • 服务器作业2
  • AUTOSAR COM 模块的主要功能导读以及示例
  • 【jvm】如何设置Eden、幸存者者区的比例
  • C语言 | Leetcode C语言题解之第521题最长特殊序列I
  • C++模拟实现list
  • NRF52832学习笔记(41)——添加串口库libuarte
  • GPT-SoVITS 部署方案
  • sqlalchemy连接mysql数据库
  • 全面解析:大数据技术及其应用
  • 鸿蒙开启无线调试
  • dockerdockerfiledocker-compose操作nginx
  • Mac电脑技巧:适用于Mac的免费外置硬盘数据恢复软件
  • FreeRTOS 队列详解
  • 【spark的集群模式搭建】Standalone集群模式的搭建(简单明了的安装教程)