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

c语言之自定义memcpy

void *Memcpy(void *dest, const void *src, size_t count)  
{  cout<<"sizeof(dest)是:"<<sizeof(dest)<<endl;int bytelen=count/sizeof(dest);	/*按CPU位宽拷贝*/int slice=count%sizeof(dest);	/*剩余的按字节拷贝*/unsigned int* d = (unsigned int*)dest;  unsigned int* s = (unsigned int*)src;  if (((int)dest > ((int)src+count)) || (dest < src))  {  while (bytelen--)  *d++ = *s++;  while (slice--)  *(char *)d++ = *(char *)s++; }  else /* overlap重叠 */  {  d = (unsigned int*)((unsigned int)dest + count - 4); /*指针位置从末端开始,注意偏置 */  s = (unsigned int*)((unsigned int)src + count -4);  while (bytelen --)  *d-- = *s--;  d++;s++;char * d1=(char *)d;char * s1=(char *)s;d1--;s1--;while (slice --)  *(char *)d1-- = *(char *)s1--; }  return dest;  
}  
http://www.jsqmd.com/news/2656/

相关文章:

  • 国产芯片处理板卡:7-基于国产化FT-M6678+JFM7K325T的6U CPCI信号处理卡
  • 一文详解纷享销客CRM Agent平台3大核心能力(附应用场景与案例)
  • QOJ #5076. Prof. Pang and Ants 题解
  • 微信小程序(uniapp)PDF预览完整实现方案
  • 发现5个宝藏文件摆渡系统 2025年企业首选的摆渡方案是这个!
  • BilldDesk:基于Vue3+WebRTC+Nodejs+Electron的开源远程桌面控制 - 详解
  • css-轮播图效果
  • aspnetcore使用websocket实时更新商品信息
  • 漏洞挖掘实战:如何定制化模糊测试技术
  • css-遮罩层效果
  • nuxt3中使用pdfjs-dist实现pdf转换canvas实现浏览
  • 查看linux部署网站的TLS版本号
  • 【SpringBoot- Spring】学习
  • css-更改鼠标样式
  • css-浮动围绕文字效果
  • 按照DDD的方式写的一个.net有关Web项目框架
  • css-图片文字对齐方式
  • 基于Python+Vue开发的摄影网上预约管理系统源码+运行步骤
  • 【习题答案】《深入理解计算机系统(原书第三版)》
  • css-文字溢出省略号显示
  • 深入解析:mosquitto求医之路(3):Docker安装也不好使
  • 软件体系结构——负载均衡 - 指南
  • css-定位让盒子居中显示
  • Qwen3-Max 2025年完整发布解析:阿里巴巴最强AI模型深度评测
  • 在线教育软件开发的全流程解析与优化方案
  • css-伪元素清除浮动
  • 在K8S中,Deployment⽀持扩容吗?它与HPA有什么区别?
  • 开源语音识别FunASR入门详解
  • 浅谈云原生数据库
  • AT_abc201_f [ABC201F] Insertion Sort 题解