C语言memcpy()函数和memmove()函数
2024-09-03 03:58:15
C语言memcpy()函数和memmove()函数
关于 memcpy() 函数,请先看链接。
memcpy() 函数和 memmove() 函数的函数原型如下:
void* memcpy(void * restrict s1, const void * restrict s2, size_t n);
void* memmove(void * s1, const void * s2, size_t n);
两函数作用相似,都是指针 s2 指向的区域拷贝 n 个字节至 s1 指向的区域,并且都返回一个指针指向 s1。
所不同的是 memcpy() 函数的参数带有关键字 restrict
(关键字 restrict 用于限定指针,告知编译器,所有修改该指针所指向内容的操作全部都是基于该指针
的,即不存在其它进行修改操作的途径),在此处可以理解为 memcpy() 函数假设进行拷贝的两个内存区域之间没有重叠,因此如果两个内存区域存在重叠,
memcpy() 可能出错。而 memmove() 没有这样的假设,其拷贝过程类似于先将所有字节拷贝至一个临时区域,再将其拷贝至目的区域。
对于这两个函数而言,它们不知道也不关心数据的类型,只负责从一个位置把给定长度的字节拷贝到另一个位置而已。
最新文章
- 第二章作业-第3题(markdown格式)-万世想
- C# EasyUI树形结构权限管理模块
- 拦截js方法备忘录
- VS2010安装异常中断后无法安装的解决方法(安装时发生严重错误)
- 使用扩展方法(this 扩展类型)
- [swustoj 191] 迷宫逃离
- 配置wamp开发环境【1】
- BeanFactory调用getbean()对象
- Nancy启用跨站攻击防护(CSRF)
- 002 网上看的unity学习路线
- python 学习笔记 2 ---->; dive into python 3
- Problem after converting keras model into Tensorflow pb - 将keras模型转换为Tensorflow pb后的问题
- LOJ6436 [PKUSC2018] 神仙的游戏 【FFT】
- [20171101]修改oracle口令安全问题.txt
- Coding in Delphi(前4章翻译版本) (PDF)
- VS2010 运行时 出现cmd窗口的设置方法
- 控制台报错: SCRIPT1006: Expected ')'
- 撩课-Web大前端每天5道面试题-Day15
- 系统分析与设计——WordCount
- 【转载】linux2.6内核initrd机制解析
热门文章
- Windows蓝牙失效超全攻略
- 通过CVE-2021-43297漏洞在Apache Dubbo<;=2.7.13下实现RCE
- 针对vue中请求数据对象新添加的属性不能响应式的解决方法
- 【程序15】成绩>=90分用A表示,60-89分用B表示, 60分以下用C表示。
- 『无为则无心』Python基础 — 42、Python中文件的读写操作(二)
- dp学习(六)
- Java 中对象锁和类锁的区别? 关键字 Synchronized的用法?
- System.arraycopy()的用法?
- PyTorch 介绍 | BUILD THE NEURAL NETWORK
- js源码-数组中的push()和unshift()方法的源码实现