嵌入式从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/8/1 5:48:05阅读更多 →
Go语言面试核心:内存管理、并发模型与性能优化深度解析

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

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

2026/8/1 5:48:05阅读更多 →
手动求解关键路径:从数据结构到项目管理的核心思维与实战四步法

手动求解关键路径:从数据结构到项目管理的核心思维与实战四步法

1. 项目概述:为什么“手动求解关键路径”是项目管理的硬核技能?如果你正在学习数据结构,或者准备软考、考研,甚至是在备考PMP,那么“关键路径”这个词你一定不陌生。它频繁出现在《数据结构》的图论章节,也…

2026/8/1 5:48:05阅读更多 →
Orca大模型安装实战:从环境配置到训练部署全流程解析

Orca大模型安装实战:从环境配置到训练部署全流程解析

1. 项目概述:为什么我们需要关注Orca的安装? 如果你最近在关注大语言模型(LLM)的微调领域,那么“Orca”这个名字大概率已经出现在你的视野里了。它不是一个新发现的海洋生物,而是微软研究院在2023年发布的…

2026/8/1 7:02:33阅读更多 →
RS485通讯模块组态配置全解析:从硬件接线到MCGS/西门子实战

RS485通讯模块组态配置全解析:从硬件接线到MCGS/西门子实战

在工业自动化项目中,RS485通讯模块的组态配置是连接现场设备与上位机系统的关键环节。很多工程师在初次接触多设备联网时,常遇到通讯不稳定、地址冲突、协议解析错误等问题。本文将基于实际项目经验,完整梳理RS485通讯模块的组态流程&#xf…

2026/8/1 7:02:33阅读更多 →
Python JSON序列化TypeError:解决type对象无法序列化的方法与实战

Python JSON序列化TypeError:解决type对象无法序列化的方法与实战

1. 问题根源:为什么type对象无法被序列化?在Python里,json.dumps()函数就像是一个严格的“翻译官”,它的工作是把Python世界里的各种对象(比如字典、列表、字符串、数字)翻译成JSON世界能理解的格式。JSON标…

2026/8/1 7:02:33阅读更多 →
Android 10+开机自启动实现:从BOOT_COMPLETED广播到前台服务适配

Android 10+开机自启动实现:从BOOT_COMPLETED广播到前台服务适配

1. 开机自启动的“旧梦”与“新规”在Android开发的漫长岁月里,让一个应用在设备开机后自动运行,曾经是件相当“直白”的事情。很多开发者,尤其是需要后台常驻服务的工具类、安全类应用的开发者,对此功能再熟悉不过。其核心原理&a…

2026/8/1 7:02:33阅读更多 →
TCP服务器监听状态检测:从原理到C/C++多维度实现

TCP服务器监听状态检测:从原理到C/C++多维度实现

1. 项目概述:为什么我们需要关注TCP监听状态?在后台服务开发中,我们经常需要编写一个TCP服务器。启动服务器,调用bind和listen之后,我们通常会得到一个“监听成功”的日志,然后程序就进入accept循环。但问题…

2026/8/1 7:02:33阅读更多 →
深入解析NOR Flash:从浮栅晶体管原理到嵌入式系统实战应用

深入解析NOR Flash:从浮栅晶体管原理到嵌入式系统实战应用

1. 项目概述:为什么我们需要深入理解NOR Flash?在嵌入式系统、物联网设备乃至一些老式主板的BIOS芯片里,你总能找到一种看似不起眼却至关重要的存储器件——NOR Flash。作为一名在嵌入式领域摸爬滚打了十多年的工程师,我处理过无数…

2026/8/1 7:00:33阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/31 20:44:05阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/31 20:44:05阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →