嵌入式从0到精通——C语言函数
1. 降低程序的耦合性关联度避免重复代码2. 让程序模块化增强代码的复用性1. 函数定义函数的具体实现返回值 函数名形参表 { 函数体 } ​ 返回值类型说明符 int、char、float 等基本数据类型、构造数据类型、void 类型 返回函数最终的结果 void空类型。当函数执行完不需要有任何结果返回时可以使用 void 类型返回值。 函数名标识符遵循标识符的命名规则见名知意 形参表函数执行过程中需要的条件 形式 数据类型 形参名数据类型 形参名2. 函数的调用函数名实参表; 实参表传递给函数的具体的条件 值1值2 1. 实参的个数和形参的个数一致 2. 实参和形参的数据类型要一致或者相互兼容 3. 形参和实参名字可以相同也可以不相同 4. 函数不被调用不执行调用几次执行几次 函数名实参表————表达式结果是函数的返回值类型 函数的返回值有一个明确的返回类型时必须要 return否则系统会返回一个随机值主调函数调用函数的函数称为主调函数main被调函数被调用的函数3. 函数的声明声明1. 当被调函数定义在主调函数的后边编译器报 implicit declaration可以将该函数在主调函数前边进行说明2. 多文件使用函数的时候需要对其进行说明允许被其他文件调用。语法返回值 函数名形参表;4. 函数的调用过程保护现场当函数被调用时会将函数调用位置的下一条指令地址保存在栈空间恢复现场当被调函数执行完时通过出栈保护现场的地址决定了 CPU 继续执行的位置在函数被调用指令的下一条指令地址5. 函数参数传递1. 函数传参的过程其实是实参向形参拷贝的过程实参有实参的空间形参有形参的空间值传递2. 值传递在被调函数中无法修改主调函数中的变量3. 函数传参的顺序自左向右6. 函数的递归调用递归调用函数直接或者间接调用自己本质循环方式注意1. 递归要有递归的出口否则会成为死循环。2. 递归调用系统开销比循环大比如栈7. 函数一维整型数组传参方式定义 返回值 函数名int 数组名[], int len { // sizeof(数组名) ———— sizeof(int *) ———— 8 字节 // 外面数组怎么使用函数内就怎么使用 } 调用 函数名(数组名数组长度)注意1. 数组作为函数传递时形参必须要是数组类型int a[][] 中的常量可以省略2. 数组作为函数传参时本质传递的是数组的首元素地址所以形参本质是一个地址是数组的起始地址3. 由于数组名传参本质传递的是首地址所以必须要传递整型数组长度4. 数组作为函数传递给被调函数后函数内部的使用方法和外面使用一样除了 sizeof

相关新闻

Unity 2022 LTS + PICO 4:从零构建你的第一个VR应用全流程指南

Unity 2022 LTS + PICO 4:从零构建你的第一个VR应用全流程指南

1. 项目概述:从零到一,在PICO 4上跑通你的第一个VR世界如果你手头有一台PICO 4,并且对创造沉浸式的虚拟现实体验充满好奇,那么恭喜你,你找到了一个绝佳的起点。很多开发者,包括几年前的我,都是从…

2026/10/13 18:39:31 阅读更多 →
Go语言面试核心:内存管理、并发模型与性能优化深度解析

Go语言面试核心:内存管理、并发模型与性能优化深度解析

1. 项目概述:一份能让你真正“过关”的Go面试指南又到了招聘季,或者你正准备跳槽,打开招聘软件,满屏的“Golang工程师”岗位让人心动,但点开职位要求,心里又有点发虚。那些面试题,有的看着眼熟&…

2026/10/13 4:32:54 阅读更多 →
STM32实现高帧率视频播放:从图像压缩到DMA2D加速的完整实战

STM32实现高帧率视频播放:从图像压缩到DMA2D加速的完整实战

1. 项目概述:当STM32遇上高帧率视频几年前,如果有人告诉我,能用一块核心板只有邮票大小、主频几十兆赫兹的单片机流畅播放高分辨率、高帧率的视频,我肯定会觉得是天方夜谭。但技术的魅力就在于不断打破想象力的边界。今天要聊的这…

2026/10/13 5:59:31 阅读更多 →

最新新闻

深入理解C++多态性:虚函数与设计模式应用

深入理解C++多态性:虚函数与设计模式应用

1. 理解C多态性的本质在面向对象编程中,多态性是最具威力的特性之一。它允许我们通过统一的接口操作不同类型的对象,而具体执行哪个实现则由运行时对象的实际类型决定。这种特性在C中主要通过虚函数机制实现。想象你正在开发一个图形编辑器程序。你需要处…

2026/10/14 13:53:01 阅读更多 →
TCP/IP与HTTP协议深度解析:从设计哲学到故障排查

TCP/IP与HTTP协议深度解析:从设计哲学到故障排查

1. 这不是背题手册,而是一张网络协议的“解剖图谱” 你打开任何一家中大型科技公司的校招/社招岗位JD,只要带“后端”“运维”“测试开发”“SRE”“网络工程师”这些字眼,几乎必然在“技术要求”里看到这一行: 熟悉TCP/IP协议栈…

2026/10/14 13:53:01 阅读更多 →
SOFC十字型流道设计与COMSOL多物理场仿真实践

SOFC十字型流道设计与COMSOL多物理场仿真实践

1. 项目背景与核心目标这个SOFC仿真模型项目聚焦于直接甲醇固体氧化物燃料电池的十字型流道设计优化。作为一名长期从事燃料电池仿真研究的工程师,我深知流道结构对电池性能的关键影响。十字型流道因其独特的流体分布特性,在提升燃料利用率和电流密度均匀…

2026/10/14 13:53:01 阅读更多 →
智驾量产潜力审计:智能驾驶评测体系全解析

智驾量产潜力审计:智能驾驶评测体系全解析

这些年做智驾测试和量产项目评估,我最大的感受是:方案好不好,不能光看发布会上的演示视频,也不能只看测试场的通过率。真正决定一个智驾系统能不能上车、能不能持续迭代的,是一整套关于“量产潜力”的判断。这个判断如…

2026/10/14 13:53:01 阅读更多 →
C++ Qt词法分析器实战:状态机+GUI工程化实现

C++ Qt词法分析器实战:状态机+GUI工程化实现

简介:本资源是一份面向计算机专业本科生、编译原理课程学习者及Java初学者的词法分析实践项目,聚焦编译器前端核心环节——词法扫描的完整实现与可视化验证。项目基于Java语言开发,采用Swing构建图形界面,支持在MyEclipse环境中一…

2026/10/14 13:53:01 阅读更多 →
Advanced Installer 15.2汉化完全指南:版本匹配、覆盖验证与避坑

Advanced Installer 15.2汉化完全指南:版本匹配、覆盖验证与避坑

简介:Advanced Installer(高级安装程序)15.2汉化版是一款面向Windows应用开发者和系统管理员的专业打包部署工具,基于MSI技术,可快速生成符合Windows Installer标准的安装包,并支持自定义安装向导界面、编写…

2026/10/14 13:52:00 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →