C库函数之memcpy的实现

2023-11-13

C库函数之memcpy的实现


memcpy的实现方式是当满足四字节对齐时,进行四字节的拷贝,不满足时进行单字节的拷贝。例如拷贝10个字节,循环两次拷贝四字节,在循环两次拷贝一字节。


void mem_memcpy(void* dst, const void* src, unsigned int cnt)
{
	char *d = (char*)(void *)dst;
	const char *s = src;

	while (cnt >= sizeof (int)) {
		*(int*)d = *(int*)s;
		d += sizeof (int);
		s += sizeof (int);
		cnt -= sizeof (int);
	}
	while ((cnt) > 0U){
		*d = *s;
		d += 1U;
		s += 1U;
		cnt -= 1U;
	}
}


end

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C库函数之memcpy的实现 的相关文章

随机推荐

  • Neural Natural Language Processing for Long Texts: A Survey of the State-of-the-Art

    本文是针对NLP处理长文本的一个综述 针对 Neural Natural Languag Processing for Long Texts A Survey of the State of the Art 的翻译 长文本的神经自然语言处理
  • 【转载】[特征向量在线提取工具Pse-in-One 2.0

    1 Pse In One 简单介绍 机器学习分类算法方法主要依赖于根据蛋白质的结构以及功能特性构建的特征集合 通过构造具有辨别性的特征集合来达到令人满意的分类结果 但是使用一个能够反映序列模式信息并能够保持关键序列信息的离散模型或向量是一个
  • HTTPS、UDP/TCP、三次握手、四次挥手

    HTTPS协议 其实就是加密后的HTTP协议 自定制协议 HTTP协议 https到底是如何进行加密传输的 通过ssl加密实现 非对称加密算法 对称加密算法 签名证书 数据直接在网络中传输 很容易被劫持 有很大的安全隐患 对传输过程进行加密
  • HLA仿真中的多联邦

    经常有人问我HLA仿真中的多联邦问题 本讲对此进行解答 1 HLA标准中的联邦指单个联邦 在HLA标准中 联邦定义如下 简单地说 一个联邦用于完成一定的仿真功能 包含一组仿真成员和一个FOM文件 在HLA1 3中 FOM文件的后缀为 fed
  • 安装Vmware workstations 16 Microsoft Visual C++ 2019 x86 Minimum Runtime报错解决办法

    由于电脑更新到了win11系统 之前的Vmware不在被系统支持 需要重新下载新版本的Vmware 在安装Vmware workstations 16时 系统报错界面如下 我们点击OK 会弹出如下提示框 根据这个提示框 可以判断出是电脑中的
  • oracle 11g rac手册(第2版) 高清,Oracle Database11g RAC手册(第2版)_IT教程网

    资源名称 Oracle Database11g RAC手册 第2版 内容简介 根据Oracle ACE提供的专家指导来管理动态的企业级计算基础设施 戈帕拉克里希南所著的 Oracle Database 11g RAC手册 第2版 进行了全面
  • web前端面试题(全)

    近来看到网上格式各样的web前端求职的面试题 接下来我用我的经验总结了一套在面试过程中高频率问到的面试题 希望能帮助各位求职者在求职的过程中顺利通过 废话不多说 直接说题 一 HTML5部分 1 说一下对css盒模型的理解 答 css盒子模
  • 【总结一】现代密码学

    目录 1 密码学概述 1 1 密码学的基本概念 1 1 1 为什么要学密码学 1 1 2 什么是密码学 1 1 2 密码算法的基本模型 1 1 3 密码算法的分类 1 2 密码分析学 1 3 古典密码算法 1 3 1 置换密码 1 3 2
  • 对表的复杂查询

    1 连接查询 数据库中的各个表中存放着不同的数据 用户往往需要用多个表中的数据来组合 提炼出所需要的信息 如果一个查询需要对多个表进行操作 就称为连接查询 例 对student sno clno sname ssex sage course
  • Windows上安装Hadoop 3.x

    目录 0 安装Java 1 安装Hadoop 1 1 下载Hadoop 1 2 下载winutils 2 配置Hadoop 1 hadoop env cmd 2 创建数据目录 3 core site xml 4 hdfs site xml
  • 解决textarea文字不顶头显示/点击textarea 不是第一行

    问题描述 表单提交后发现内容前多了很多空格 而且每次更新表单提交都会有空格增加 后来发现 每次文字从数据库读到textarea后文字都不居左 在排出样式 转义字符等问题后 baidu google了一会始终没找到答案 后来发现原来问题处在H
  • 网络--正向代理和反向代理

    正向代理的概念 正向代理 也就是传说中的代理 他的工作原理就像一个跳板 简单的说 我是一个用户 我访问不了某网站 但是我能访问一个代理服务器 这个代理服务器呢 他能访问那个我不能访问的网站 于是我先连上代理服务器 告诉他我需要那个无法访问网
  • 如何将VS Code扩展插件迁移出系统盘

    背景 Windows的C盘 系统盘 容量经常不够用 经过排查发现VSCode的扩展插件所在目录占用了很大空间 为了节省系统盘的空间 需要将VSCode扩展插件迁移到D盘 环境 Windows VS Code 全称是Visual Studio
  • MySQL的JSON数据类型介绍以及JSON的解析查询

    文章目录 概述 JSON 数据类型的意义 JSON相关函数 测试 创建测试表 插入数据 查询数据 条件查询 优化JSON查询 解决方案 总结 概述 MySQL从5 7后引入了json数据类型以及json函数 可以有效的访问json格式的数据
  • iOS音视频—FFmepg:iOS平台下集成和应用

    1 在iOS平台下集成和应用FFmpeg Mac配置FFmpeg环境 1 安装homebrew ruby e curl fsSL https raw githubusercontent com Homebrew install master
  • Maven中测试插件(surefire)的相关配置及常用方法

    原创文章 版权所有 允许转载 标明出处 http blog csdn net wanghantong 1 在Maven中配置测试插件surefire html view plain copy
  • 通讯录管理系统(C++)

    1 菜单功能 功能描述 用户选择功能的界面 步骤 封装函数showMenu 显示该界面 在main函数中调用封装好的函数 菜单界面 void showMenu cout lt lt 1 添加联系人 lt lt endl cout lt lt
  • \t转义字符占几个字节?

    这个问题 在你学习编程过程中可能会考虑到 有时为了字节对齐而使用转义符中 t 但是到底 t占用几个空格呢 下面我们首先通过程序来体验下 然后在总结 include
  • ElasticSearch(7)---倒排索引

    上一篇 ElasticSearch 6 Kibana插件 1 正向索引和反向索引 涉及到索引的概念的时候 首先需要知道 索引可以分为正向索引和反向索引 也可以理解为倒排索引 正向索引 正向索引可以简单理解为从文档到单词 例如现在有4个文档
  • C库函数之memcpy的实现

    C库函数之memcpy的实现 memcpy的实现方式是当满足四字节对齐时 进行四字节的拷贝 不满足时进行单字节的拷贝 例如拷贝10个字节 循环两次拷贝四字节 在循环两次拷贝一字节 void mem memcpy void dst const