为什么strcpy的返回值是char* ?

Android 13高通平台CTS camera部分fail项修改(续) 接着上一篇,有几个提了case高通也分析了很久的fail项,其中最离谱的是问题1,第一个接手case的人反反复复处理、内部排查踢皮球、要求log,折腾了很久,最终就给出个解不了的结论。后面还是靠着自己发现了一些蛛丝马迹,并且换了个case接手人才最终解决。 阅读详情

当我在笔试中面对这个题目的时候,毫不犹豫的写下这样的答案:

如果strDest的长度小于strSrc,会删除strDest,然后new一块与strSrc相同大小的内存。

由于我知道试题是出自林锐的《高质量C++编程指南》,所以回来后我查看了相关的资料,结果大失所望,以下是引自原文:

【建议6-2-1】有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,
可以附加返回值。
例如字符串拷贝函数strcpy 的原型:
char *strcpy(char *strDest,const char *strSrc);
strcpy 函数将strSrc 拷贝至输出参数strDest 中,同时函数的返回值又是strDest。
这样做并非多此一举,可以获得如下灵活性:
char str[20];
int length = strlen( strcpy(str, “Hello World”) );

 

我不太服气的找到了微软的源代码:

/***
*char *strcpy(dst, src) - copy one string over another
*
*Purpose:
*       Copies the string src into the spot specified by
*       dest; assumes enough room.
*
*Entry:
*       char * dst - string over which "src" is to be copied
*       const char * src - string to be copied over "dst"
*
*Exit:
*       The address of "dst"
*
*Exceptions:
*******************************************************************************/

char * __cdecl strcpy(char * dst, const char * src)
{
        char * cp = dst;

        while( *cp++ = *src++ )
                ;               /* Copy src over dst */

        return( dst );
}

 

看来事实就是如林锐所说,仅仅为了使用方便

DFT ATPG提升coverage的方法 采用更精确的故障模型,如桥接故障模型(用于描述电路中不应连接的节点之间的短路故障)和路径延迟故障模型(考虑信号在电路路径上的传输延迟),可以使ATPG工具生成更有效的测试向量来覆盖这些特殊故障。假设电路中有一个与门的输入引脚存在固定为0的故障(stuck - at - 0),D - 算法会分析与门的其他输入以及与门输出连接的后续电路逻辑,从而确定整个电路的输入值,使得当该故障存在时,电路的输出与无故障时不同。通过增加测试向量的类型,如功能测试向量和结构测试向量的结合,可以提高故障覆盖率。 阅读详情

相关推荐

Unable to negotiate with XXXX port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

打开ssh_config此文件,滑动到最下面,新增自己git主机地址(这里我直接默认*)执行命令 git clone git@xxxxxxxxxxxxx.git。代码仓库已经添加了ssh公钥之后,克隆代码到本地时就报了这个问题。首先是找到git安装目录(根据自己安装时选项,找到这个目录)再进入ssh目录,找到 ssh_config 配置文件。配置完成后,保存配置文件后再次去clone代码。直接复制下面这一段到文件中最底部位置即可。然后进入 etc目录,找到ssh目录。终于可以克隆下来了。

萌兔兔MMQ!! 3353

编写strcpy函数(笔试题)

已知strcpy函数的原型是char其中 strDest是目的字符串,strSrc是源字符串。(1)不调用C++/C的字符串库函数,请编写函数strcpy(2)strcpy 能把 strSrc的内容复制到strDest,为什么还要 char *类型的返回值?

1217

Labview及NI-USRP驱动安装教程

软件下载 安装使用的LabVIEW2018及NI-USRP驱动程序已上传,下载地址: 天翼云盘链接 (访问码:oc33) 百度网盘链接 (提取码:88mi) (注:天翼云盘下载不限速) LabVIEW2018安装步骤 右键软件压缩包选择解压至LabVIEW2018 选中文件,鼠标右击选择以管理员身份打开2018LV-WinChn.exe文件。 点击确定。 点击Unzip解压。 点击确定。 点击下一步。 填写任意信息后,点击下一步。 点击下一步。 点击浏览更改安装路径建议安装到除C盘以

dadapongi6的博客 2万+

strcpy

有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达, 可以附加返回值。 例如字符串拷贝函数strcpy 的原型: char *strcpy(char *strDest,const char *strSrc); strcpy 函数将strSrc 拷贝至输出参数strDest 中,同时函数的返回值又是strDest。 这样做并非多此一举,可以获得如下灵活性: char str[20

chivalry 675

STM32学习笔记【江科协】【4-2】OLED显示屏

可以注意到接电源的GND和VCC同时和PB6、PB7号口连接,我们可以直接不初始化这两个引脚解决,因为STM32的引脚上电后,如果不初始化,默认是浮空输入的模式,在这个模式下,引脚不会输出电平,所以不会有什么影响,或者直接给PB6口输出低电平,PB7口输出高电平,用GPIO口直接给OLED供电,这个也是没问题的,因为OLED的功率很小这个也是可以驱动的,不过用GPIO口供电不是很规范,实际项目还是用电源供电。然后点击这里放大镜里面带d的图标,进入调试模式,这个界面里,

m0_74651303的博客 1595

Synopsys SpyGlass 进行 RTL 功耗估计

通过上述脚本,您可以使用 Synopsys SpyGlass 对纯 RTL 代码和带有 FSDB 波形的 RTL 代码进行功耗估计,并支持将 SDC 文件转换为 SGDC 文件。

yumingqinglong的博客 2185

C语言面试题小练——第5天:实现strcpy(不调用库函数)、为什么要返回char*、实现冒泡排序

一、已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);1.不调用库函数,实现strcpy函数。2.解释为什么要返回char *。二、实现冒泡排序

Super辉sir的博客 2138

如何用Lmcache+vllm优化KVcache存储?CPU与SSD性能实测对比

本文通过实测对比,详细介绍了如何利用Lmcache+vLLM将大模型推理中的KV Cache卸载至CPU内存或SSD硬盘,以解决长上下文场景下的GPU显存瓶颈。测试数据显示,CPU卸载方案在首字延迟(TTFT)上显著优于SSD方案,但SSD方案在存储成本上更具优势。文章提供了完整的配置指南、性能数据分析和生产环境选型建议。

fire9的博客 984

Strcpy函数

已知 strcpy 函数的原型是 char *strcpy(char *strDest, const char *strSrc); 其中 strDest 是目的字符串,strSrc 是源字符串。 (1)不调用C++/C 的字符串库函数,请编写函数 strcpy

Huaerge的专栏 661

基于Keil软件实现对射式红外传感器计次 (江协科技HAL库)

用HAL库复现江协科技,让嵌入式学习之路更顺畅。

2401_82728381的博客 798

OpenClaw进阶实战(五):多模态能力扩展——让OpenClaw看懂图片、听懂语音

本文介绍了如何在OpenClaw中实现多模态能力,包括图像文字识别(OCR)、图像描述和语音识别(ASR)三种技能。通过PaddleOCR、BLIP和Whisper等开源工具,可以本地化部署这些功能,保护数据隐私。文章详细展示了三个独立技能模块的实现代码,并提出了一个"多模态智能管家"方案,能自动识别消息类型(文本/图片/语音)并调用相应处理技能。该方案适用于电商客服、会议纪要等真实业务场景,使AI助手具备"眼睛"和"耳朵"的多模态交互能力。

PeterPan的博客 160

strcpy 为什么需要返回值 为char*

https://blog.youkuaiyun.com/u010056396/article/details/25654271

qq_37405874的博客 1882

[QMT和ptrade量化交易小白入门]-122、基于聚类分析的动态股票池构建与ETF轮动策略,回测年化 132.09%

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1024

转载-strcpy 为什么需要返回值 为char*

有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。例如字符串拷贝函数strcpy 的原型:char *strcpy(char *strDest,const char *strSrc);strcpy 函数将strSrc 拷贝至输出参数strDest 中,同时函数的返回值又是strDest。这样做并非多此一举,可以获得如下灵活性:char str[20];int length...

EmbeddedCoder 的优快云博客 4555

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

strcpy strcpy把含有‘\0‘结束符的字符串复制到另一个地址空间,返回值的类型为char*。

char a[10],b[]={“COPY”}; //定义字符数组a,b strcpy(a,b); //将b中的COPY复制到a中

weixin_41454036的博客 583

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

模拟实现strcpy 函数

strcpy函数的介绍 strcpy函数:把含有’\0’结束符的字符串复制到零一个地址空间,返回值的类型为char* strDestination是目的字符串 strSource是源字符串 char *strcpy( char *strDestination, const char *strSource ); #define _CRT_SECURE_NO_WARNINGS 1 #include&l...

weixin_44944393的博客 178

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

c语言中char 和char []

char *p和char[]在本质上都是对字符数组的引用,但它们在内存分配、生命周期和用法上有所不同。在函数传参时,两者都可以作为字符串的引用传递,但在返回值时需要特别注意内存管理和生命周期的问题。在使用strcpy时,需要确保目标空间有足够的内存来存储源字符串,并避免缓冲区溢出等安全问题。在C语言中,字符数组和字符指针都是用于处理字符串的重要概念,但它们之间存在一些关键的区别。字符串字面量(String Literal)在C语言和其他许多编程语言中是一个直接表示文本数据的常量。

Lzy1154119938的博客 1364

strcpy函数

strcpy函数 有道面试题,复习下。 已知strcpy函数的原型是: char * strcpy(char * strDest,const char *strSrc);不调用库函数,实现strcpy函数。其中,strSrc是原字符串,strDest是目标字符串。 (1)不调用C++/C的字符串库函数,请编写函数 strcpy (2)strcpy能把strSrc的内容复制到strDest,为什么还...

weixin_44547715的博客 6455

银河麒麟V10下UHF RFID读写器安装与串口调试全指南

在信创与国产化替代的浪潮中,众多Windows环境下的硬件设备需要无缝迁移到国产操作系统。外设能否被稳定识别,往往取决于底层的数据通道,其中USB转串口芯片的识别、串口权限的配置是两大核心门槛。从Linux设备节点如ttyUSB0的生成,到权限管理需摒弃临时性的chmod 777,转而加入dialout组或编写udev规则,这些基础机制决定了RFID读写器能否被应用层稳定调用。掌握串口通信原理与网络调试方法后,无论是桌面级读写器还是网络一体机,都能在麒麟系统下完成标签盘点、写入与联调。本文以超高频RFID读

weixin_34393428的博客 459

模拟strcpy函数及应用

模拟strcpy函数及应用

CodingStart 862

C++,strcpy,字符串,复制,拷贝,copy,笔试,试题

出现频率最高的笔试题     关键字:C++,strcpy,字符串,复制,拷贝,copy,笔试,试题     题目:     已知strcpy函数的原型是:         char * strcpy(char * strDest,const char * strSrc);     1.不调用库函数,实现strcpy函数。     2.解释为什么要返回char *。     解说

esong123的专栏 2384

【C语言】_字符串拷贝函数strcpy

while (*dest++ = *src++) 写法既完成了\0的拷贝,也使得条件为假跳出循环;注:虽然++的优先级高于*,但由于为后置++,故*dest++实际上是对dest解引用后再++;将*dest++ = *src++ 置于while判断条件中,由于判断条件需先执行后判断,返回类型为char*,返回值为destination,即目标空间的起始地址;1、拷贝源字符串时,以'\0'作为拷贝结束标志,strcpy功能:字符串拷贝。

m0_63299495的博客 1399

编程实现strcpy函数

http://hi.baidu.com/tangsu2009/item/14748bd3a49073362b35c7f4 已知strcpy函数的原型是: char * strcpy(char * strDest,const char * strSrc); (1)不调用库函数,实现strcpy函数。 (2)解释为什么要返回char *。 代码如下: 1    

u011248345的专栏 1015

经典的strcpy 函数

 已知strcpy 函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strdest 是目的字符串,strsrc 是源字符串。   (1)不调用c++/c 的字符串库函数,请编写函数 strcpy(2)strcpy 能把strsrc 的内容复制到strdest,为什么还要char * 类型的返回值?(

snlying的专栏 895

strcpy原型

已知strcpy函数的原型是        char *strcpy(char *strDest, const char *strSrc);        其中strDest是目的字符串,strSrc是源字符串。 (1)不调用C++/C的字符串库函数,请编写函数 strcpy char *strcpy(char *strDest, const char *strSrc); {

PeterHuaWei3的专栏 2635

C/C++中strcpy函数的用法

C语言标准库函数  原型声明:extern char *strcpy(char *dest,char *src);  头文件:string.h  功能:把src所指由NULL结束的字符串复制到dest所指的数组中。  说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。  返回指向dest的指针。典型实现  /**********************  ...

lzw刘仔很忙的博客 2255
上一篇: 一个简单的保护视力的软件
下一篇: 为什么c++程序调用c编译器编译的函数需要在调用前加上extern“C”
ForNormandy
博客等级 码龄22年 7粉丝 18原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值