strcpy,memcpy,memset函数实现

 strcpy 实现,只能拷贝字符串

char* strcpy(char* des,const char* source)
{char* r=des;  
assert((des != NULL) && (source != NULL));while((*des++ = *source++)!='\0');return r;
}

 

memcpy 实现,注意目的地址和源地址重合的情况,以及强制类型转换

void *myMemCopy(void *dest,const void *src,size_t count)
{char *pDest=(char *)(dest);const char *pSrc=(const char *)(src);//目的地址和源地址重叠,从源地址的末尾方向开始拷贝if( pDest>pSrc && pDest<pSrc+count ){pDest = pDest + count-1;pSrc = pSrc + count-1;while(count--){*pDest-- = *pSrc--;}}//目的地址和源地址不重叠,从源地址的开始方向拷贝else{while(count--){*pDest++ = *pSrc++;}}return pDest;
}

memset函数

memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。

memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数

void* memset(void* s, int c, size_t n)
{
assert(str != NULL);    
unsigned char* p = (unsigned char*) s;while (n > 0) {*p++ = (unsigned char) c;--n;}return s;
}

 

转载于:https://www.cnblogs.com/NeilZhang/p/6368368.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMOS图像传感器——图像传感器噪声

图像传感器噪声取决于图像传感器的制作工艺、内部结构及内部补偿技术等原因,噪声反应了图像传感器的内部特性。CMOS图像传感器基本原理见: CMOS图像传感——概述_沧海一升的博客-CSDN博客_cmos图像传感器CMOS图像传感器基本介绍https://blog.csdn.net/qq_21842097/article/d…

TI Davinci DM6441嵌入式Linux移植攻略——UBL移植篇

目录(?)[] 一DM6441的Boot过程简介二DM6441的UBL移植 CCS文件夹Common文件夹GNU文件夹 移植DDR2移植Nand Flash其它 声明&#xff1a;本文参考网友zjb_integrated的文章《TI Davinci DM6446开发攻略——UBL移植》和《DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移…

python接口自动化测试(二)-requests.get()

环境搭建好后&#xff0c;接下来我们先来了解一下requests的一些简单使用&#xff0c;主要包括&#xff1a; requests常用请求方法使用&#xff0c;包括&#xff1a;get&#xff0c;postrequests库中的Session、Cookie的使用其它高级部分&#xff1a;认证、代理、证书验证、超时…

从一个Android码农视角回顾2018GDD大会

两天的GDD大会结束了&#xff0c;很开心&#xff0c;可以看得出&#xff0c;这次Google真的很用心。不但分享的内容质量很高。而且又有得吃又有得玩&#xff0c;还有许多好看的小姐姐&#xff0c;真不妄我请了两天年假来参加这个大会。先来几张图镇楼 哈哈&#xff0c;跑题了。…

Python3.x和Python2.x的区别[转]

Python3.x和Python2.x的区别 1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间&#xff0c;在字符串和整形操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%&#xff0c;还有很大的提升空间。 2.编码 Py3.X源码文件默认使用utf-8…

数字图像处理——图像锐化

图像增强是图像处理的一个重要环节,早期的图像处理就是从图像增强开始的,人们研究对质量低的图像进行处理以获得改善质量后的图像。现今的图像增强还为后续的图像处理,如图像信息提取、图像识别等,提供更高识别度的图像。 从图像处理技术来看,图像的摄取、编码、传输和处理…

DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移植

从盛夏走到深秋&#xff0c;我们继续DAVINCI DM365-DM368的开发。说来惭愧&#xff0c;人家51CTO热情支持本博客&#xff0c;而本人却一直没有像其他博客之星一样频繁更新博客&#xff0c;心里确实说不过去。管理公司确实很累&#xff0c;有更急的客户的项目要做&#xff0c;我…

陈天艺1636050045假设跑步者1小时40分钟35秒跑了24英里。编写一个程序显示每小时以公里为单位的平均速度值...

public class AverageSpeed{ public static void main(String[]args){ double speedkm 60/(45.5/14); double speedm speedkm /1.6; system.out.println&#xff08;“averagespeed ”speedm "m/h"&#xff09; } }转载于:https://www.cnblogs.com/Archon-Cty/p/7…

EMVA 1288 测试标准

一、概述 如果要对比两台相机的性能,我们应该关注哪些参数呢,是焦距、像素、还是光圈大小?这些参数通常广为人知,并且很容易做出对比。但在一些专业领域,例如机器视觉、自动驾驶等行业,计算机算法对图像有着独特的要求,这些标准有些已经跟不上数字成像的发展步伐,而且其…

Spring Boot - 修改Tomcat默认的8080端口

前言 默认情况下&#xff0c;Spring Boot内置的Tomcat服务会使用8080端口启动&#xff0c;我们可以使用以下任何技巧去更改默认的Tomcat端口&#xff1b; 注&#xff1a;我们可以通过server.port0配置&#xff0c;去自动配置一个未被占用的http端口&#xff0c;由操作系统实现。…

2017年度目标

语言&#xff1a;python&#xff0c;lisp&#xff0c;js&#xff0c;html5技术&#xff1a;android&#xff0c;hadoop数学&#xff1a;复变函数&#xff0c;代数&#xff0c;概率&#xff0c;数论英语&#xff1a;reading其他&#xff1a;金融/经济/股票&#xff0c;历史/史记…

嵌入式系统系统升级内核双备份的实现方式

1.nand flash MTD分区 kernels/linux-2.6.31.1-cavm1/drivers/mtd/maps/xxxxx-flash.c /* MTD partitions: From CNW5602 32MB * mtd0: 0x000C0000 00020000 "bootloader" * mtd1: 0x00040000 00020000 "factory_config" * mt…

SerDes接口——架构与电路

随着通信技术的飞速发展&#xff0c;高速串行互连以其结构简单&#xff0c;不需要传输同步时钟&#xff0c;相比并行传输有更高数据传输效率的优点&#xff0c;成为现代通信和数据传输的重要组成部分。随着对数据传输速率要求的不断提高&#xff0c;SERDES应运而生。它是一种时…

Springboot分模块开发详解(2):建立子工程

1.创建base-entity 选中base工程&#xff0c;右键创建一个新的maven工程 自动选择了base这个目录存放子工程 创建后&#xff0c;pom.xml修改成如下内容&#xff1a; <?xml version"1.0"?> <projectxsi:schemaLocation"http://maven.apache.org/POM/4…

到天宫做客(2017寒假培训测试压轴题)

个人QQ&#xff1a;757394026团队QQ&#xff1a;466373640个人博客&#xff1a;www.doubleq.winc/noi/信息学奥数博客&#xff1a;http://www.cnblogs.com/zwfymqz 题目描述 有一天&#xff0c;我做了个梦&#xff0c;梦见我很荣幸的接到了猪八戒的邀请&#xff0c;到天宫陪他吃…

NAND FLASH分区规划

由于BOOTLOADRER、PARAMS以及内核、文件系统都在NAND FLASH上&#xff0c;因此分区就得进行统一规划。系统的NAND FLASH分区依赖于u-boot和Linux内核两方面的设置。U-Boot中的NAND分区 文件&#xff1a;include/configs/开发板.h这是Phy3250的参数&#xff0c;Phy3250采用32MB的…

图像去雾算法学习

现有的图像采集设备对外界环境的干扰非常敏感,在雾霾环境中,获取的户外图像往往退化严重,主要表现为场景特征信息模糊、对比度低、色彩失真,不利于计算机视觉系统对图像真实特征的提取,从而影响其后续的分析、理解、识别等一系列处理,很大程度上降低了视觉系统的实际应用…

训练与解码

BW算法是对某一个HMM(一个音素)进行训练&#xff0c;需要该HMM对应的观察向量(一段音频)&#xff0c;如何让一段文本中的某个音素找到对应一整段音频中的一小段音频&#xff1f;需要用到对齐来找到所有的[音素-音频]的配对。 训练时也需要解码 1&#xff0c;设训练的一句话有n…

Atlassian发布事故管理解决方案Jira Ops

Atlassian联合首席执行官兼联合创始人Scott Farquhar于9月4日宣布&#xff0c;Atlassian推出了一款名为Jira Ops的新产品&#xff0c;并且他们将收购OpsGenie。\\正如“Jira Ops \u0026amp; OpsGenie: powerful incident management”所描述的那样&#xff0c;Jira Ops是一款新…

U-Boot如何向内核传递Flash的分区信息

1.如何对nand 分区。修改mtdparts环境变量就可以了么&#xff1f; 对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直接使用分区的名字而不必指定分区的偏移位置. set bootargs noinitrd consolettySAC0 root/dev/mtdblock3 ro…