news 2026/4/18 10:01:38

数组作为参数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组作为参数

数组作为参数

当数组作为参数传递的时候,实际上传递的是数组的首地址,在语法上来说传递的是一个指针变量。

#include<stdio.h>#include<string.h>voidgetArrLen(charbuffer[]){printf_s("using sizeof: %zd\n",sizeof(buffer));printf_s("using strlen: %zd\n",strlen(buffer));}intmain(intargc,charconst*argv[]){charbuffer[]{"Hello World"};printf_s("sizeof(buffer) : %zd\n",sizeof(buffer));getArrLen(buffer);return0;}

考虑如上代码,main中的sizeof计算的是数组的长度,getArrLen中的sizeof计算的则是指针的大小,strlen计算的才是数组长度。因为在参数传递的过程中数组首地址变为了一个指针变量。

通过反汇编如上代码,我们可以发现在buffer的定义处调用sizeof实际上并没有计算buffer的长度,而是直接传递了一个立即数给printf_s,这是编译器优化的结果。因为buffer的长度在编译期间就可以确定了。

作为参数传递的时候才真正计算了buffer的长度。

strcpy和strlen

对于strcpy这个函数,编译器会使用xmm0这个寄存器来加速复制的过程。

书中说编译器会对这两个函数进行内联优化,我打开了O2编译选项,却没有看见内联优化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:36:49

HuggingFace Dataset库加载公开数据集用于Anything-LLM测试

HuggingFace Dataset库加载公开数据集用于Anything-LLM测试 在构建智能问答系统时&#xff0c;一个常见的挑战是&#xff1a;如何在没有真实业务数据的情况下快速验证系统的检索与生成能力&#xff1f;尤其是在部署像 Anything-LLM 这类 RAG&#xff08;检索增强生成&#xff0…

作者头像 李华
网站建设 2026/4/18 9:19:55

第十四篇:Day40-42 前端架构设计入门——从“功能实现”到“架构思维”(对标职场“大型项目架构”需求)

一、前置认知&#xff1a;为什么前端需要架构设计&#xff1f;前十三篇我们完成了从基础开发、工程化到跨端开发的能力构建&#xff0c;这些技能足以支撑中小项目或单一模块的开发。但职场中&#xff0c;当面对“10人以上团队维护、千万级用户访问、年迭代百次以上”的大型项目…

作者头像 李华
网站建设 2026/4/18 9:27:22

PyTorch安装后使用torch2trt转换模型的替代方案

PyTorch模型部署提速&#xff1a;从ONNX到TensorRT的现代推理优化实践 在边缘计算设备上跑一个实时目标检测模型&#xff0c;结果每帧要90毫秒——这显然没法满足30FPS的流畅要求。你试过torch2trt吗&#xff1f;可能一开始还能用&#xff0c;但换个PyTorch版本或者加个新算子&…

作者头像 李华
网站建设 2026/4/17 19:01:42

腾讯HunyuanVideo-Foley本地部署指南

腾讯HunyuanVideo-Foley本地部署指南 在AI生成视频内容飞速发展的今天&#xff0c;一个长期被忽视的问题逐渐浮出水面&#xff1a;画面再精美&#xff0c;若没有匹配的音效&#xff0c;依然像是“无声电影”。尽管文生视频模型已能输出流畅动态&#xff0c;但音频轨道往往依赖…

作者头像 李华
网站建设 2026/4/17 16:00:37

YOLOv5实战:血细胞检测与定位

YOLOv5实战&#xff1a;血细胞检测与定位 在显微镜下&#xff0c;一滴血液中可能包含数以千计的红细胞、白细胞和血小板。传统临床检验依赖人工计数&#xff0c;不仅效率低&#xff0c;还容易因视觉疲劳导致误差。如今&#xff0c;随着深度学习技术的成熟&#xff0c;我们完全可…

作者头像 李华
网站建设 2026/4/2 3:58:56

小白到AI产品经理:148天系统化学习路线图,非常详细收藏我这一篇就够了

这是一份详细的AI产品经理148天学习计划&#xff0c;分为四个阶段&#xff1a;基础认知建设、技术深度理解、产品方法论掌握和实战项目积累。文章提供了每日学习安排、免费优质资源推荐、学习效果检查点和常见问题解决方案。该计划从零开始&#xff0c;帮助学习者建立AI产品经理…

作者头像 李华