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

外语教学网站开发网页美工设计教程

外语教学网站开发,网页美工设计教程,网络营销的重要性与意义,soho做网站多少钱目录 按字节拷贝实现memcpy按4字节拷贝实现memcpyTips 在 C 语言中&#xff0c;我们可以自己实现 memcpy 函数来实现内存数据的拷贝操作。memcpy 函数用于将指定长度的数据从源地址复制到目标地址。 按字节拷贝实现memcpy #include <stdio.h>void* my_memcpy_byte(void*…

目录

  • 按字节拷贝实现memcpy
  • 按4字节拷贝实现memcpy
  • Tips

在 C 语言中,我们可以自己实现 memcpy 函数来实现内存数据的拷贝操作。memcpy 函数用于将指定长度的数据从源地址复制到目标地址。

按字节拷贝实现memcpy

#include <stdio.h>void* my_memcpy_byte(void* dst, const void* src, int n)
{if (dst == NULL || src == NULL || n <= 0)return NULL;char* pdst = (char*)dst;char* psrc = (char*)src;//判断目标内存区域和源内存区域是否有重叠if (pdst > psrc && pdst < psrc + n) {//如果有重叠,就从尾部开始遍历pdst = pdst + n - 1;psrc = psrc + n - 1;while (n--)*pdst-- = *psrc--;}else{while (n--)*pdst++ = *psrc++;}return dst;
}int main(void)
{char str[] = "HelloWorld";char* str1 = &str[0];char* str2 = &str[1];my_memcpy_byte(str1, str2, 5);printf("%s\n", str); //输出elloWWorldreturn 0;
}

按4字节拷贝实现memcpy


#include <stdio.h>void* my_memcpy_byte(void* dst, const void* src, int n)
{if (dst == NULL || src == NULL || n <= 0)return NULL;int* pdst = (int*)dst;int* psrc = (int*)src;char* pdstTemp = NULL;char* psrcTemp = NULL;int byte4Count = n / 4; //有多少个4字节,按4字节拷贝int byteCount = n % 4; //剩余字节数按字节拷贝//判断目标内存区域和源内存区域是否有重叠,如果有从后往前,如果没有从前往后if (pdst > psrc && pdst < (char*)psrc + n){pdstTemp = (char*)pdst + n - 1;psrcTemp = (char*)psrc + n - 1;while (byteCount--){*pdstTemp-- = *psrcTemp--;}pdstTemp++;psrcTemp++;pdst = (int*)pdstTemp;psrc = (int*)psrcTemp;pdst--;psrc--;while (byte4Count--){*pdst-- = *psrc--;}}else{while (byte4Count--){*pdst++ = *psrc++;}pdstTemp = (char*)pdst;psrcTemp = (char*)psrc;while (byteCount--){*pdstTemp++ = *psrcTemp++;}}return dst;
}int main(void)
{char str[] = "HelloWorld";char* str1 = &str[0];char* str2 = &str[1];my_memcpy_byte(str1, str2, 1);printf("%s\n", str);return 0;
}

Tips

对比字节拷贝,4字节拷贝速度是提高不少。
但是需要注意,void *dst, const void *src这两个参数是需要按4字节对齐的,如果本身不是4字节对齐,按4字节拷贝效率也会变低。

http://www.yayakq.cn/news/834776/

相关文章:

  • html做的小网站星斗科技 网站建设
  • 网站实名认证流程单位建设一个网站的费用
  • 如何建设一个稳定的网站wordpress主题汉化版
  • 用PS怎么做网站图片wordpress插件制作
  • 网站主题推荐我做微信淘宝客网站
  • 阿里云网站备份山东省建设工程质量监督总站网站
  • 怎么做网站凡科佛山营销网站建设费用
  • 做网站设计需要什么软件金融互助平台网站制作
  • 专门做稀有产品的网站黄页号码怎么查
  • ...温岭做网站移动端优质网页
  • 北京鑫旺路桥建设有限公司网站形容网站做的好的词语
  • 舞蹈培训东莞网站建设长春网站制作设计
  • 吉安网站制作公司排名河池seo快速排名
  • 上海旅游网站建设百度竞价排名正确解释
  • 荥阳网站建设公司哪家好网站左侧悬浮导航代码
  • 网站登录接口怎么做做社交电商第一步怎么做
  • 清远住房和城乡建设部网站产品营销方式有哪些
  • 陕西省建设总工会网站做ps彩图什么网站好
  • 重庆定制网站建设地址网站权重难做
  • 建设银行官网首页网站首页海珠哪家网站建设好
  • 移动端网站开发有没有免费装修设计的网站
  • 做现金贷网站的公司昆山周市建设局网站
  • 网站存在的问题动漫制作专业专升本需要考高数吗
  • 网站建设中最基本的决策黑网站代码制作
  • 做平面的公司网站建e室内设计网如何切换账号
  • 电子商务网站建设步骤百度文库深圳网站建设费用大概多少
  • 网站建设思路方案建 新闻 网站
  • 漯河有没有做网站的api模式网站开发
  • 垄断了网站建设商城网站栏目
  • 康定网站建设工作室怎么判断公司是不是外包