博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
避免内存重叠memmove()性能
阅读量:4937 次
发布时间:2019-06-11

本文共 687 字,大约阅读时间需要 2 分钟。

#include 
#include
using namespace std;void* memmove(void *dst, const void *src, size_t count){ // 容错处理 if (dst == NULL || src == NULL){ return NULL; } unsigned char *pdst = (unsigned char *)dst; const unsigned char *psrc = (const unsigned char *)src; //推断内存是否重叠 bool flag1 = (pdst >= psrc && pdst < psrc + count); bool flag2 = (psrc >= pdst && psrc < pdst + count); if (flag1 || flag2){ // 倒序拷贝 while (count){ *(pdst + count - 1) = *(psrc + count - 1); count--; }//while } else{ // 拷贝 while (count--){ *pdst = *psrc; pdst++; psrc++; }//while } return dst;}

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/bhlsheji/p/4906167.html

你可能感兴趣的文章
数据中心网络布线工程必备七大件
查看>>
20个问题揭穿冒牌数据科学家
查看>>
你应该知道的 RPC 原理
查看>>
Ubuntu安装词典
查看>>
KVM虚拟机在线添加网卡
查看>>
Spring解析
查看>>
支付宝签约教程及注意事项
查看>>
设计模式——组合模式(Composite Pattern)
查看>>
java设计模式之——代理模式
查看>>
Perl DBI模块的例子
查看>>
python中str和repr区别
查看>>
升级win10后无法使用桥接网络解决方法
查看>>
如何进行跨网段的远程唤醒
查看>>
数据挖掘-同比与环比
查看>>
nginx+php详解
查看>>
怎样取php一个字符串中的某个字符
查看>>
我的友情链接
查看>>
RedHat6 管理应用服务【11】
查看>>
stm32F10x复习-1
查看>>
20135226黄坤信息安全系统设计基础期末总结
查看>>