在此前的旅程中,我们顺着程序的生命流水线,从存储单个数据(变量)一路走到了成规模的信息容纳仓库(数组),并使用判断与循环给程序注入了逻辑能力。
理论上,你完全可以把所有的代码统统塞进 main() 主程序里。但当代码量达到数千行时,这种做法会暴露出极其直接的致命缺点:
- 代码极难维护且难以复用:各种计算任务糅杂在一起,想顺着逻辑排查 Bug 如同大海捞针。遇到相同逻辑时只能反复复制粘贴大量废话代码,十分臃肿。
- 变量极易发生踩踏冲突:成百上千个临时变量挤在没有任何物理隔离的同一个大平层空间里。稍微出现一点名称雷同或数组越界,新进场的代码就会意外覆盖掉他人的重要数据,引发全局连环崩溃。
为了对抗大规模软件工程发展带来的混乱。计算机科学在底层设计出了一种严格且标准化的工业级隔离屏障方案——函数(Function)。
本系列文章往期回顾:
第二部分 【C++的奇妙之旅】
软件
- 【信奥业余科普】C++ 的奇妙之旅 | 09:信奥赛场的核心语言——C++ 的前世今生
- 【信奥业余科普】C++ 的奇妙之旅 | 10:代码是如何运行的?——编译过程与“Hello, World”
- 【信奥业余科普】C++ 的奇妙之旅 | 11:程序的处理核心——变量与常用数据类型
- 【信奥业余科普】C++ 的奇妙之旅 | 12:程序的交互与加工——数据的输入与算术运算
- 【信奥业余科普】C++ 的奇妙之旅 | 13:为什么 0.1+0.2≠0.3?——解密“爆int”溢出与浮点数精度的底层原理
- 【信奥业余科普】C++ 的奇妙之旅 | 14:程序的分叉路口——逻辑判断与 if-else 语句
- 【信奥业余科普】C++ 的奇妙之旅 | 15:让机器不知疲倦的秘密——循环语句背后的底层逻辑
- 【信奥业余科普】C++ 的奇妙之旅 | 16:批量处理数据的基石——数组的设计哲学
- 【信奥业余科普】C++ 的奇妙之旅 | 17:面的铺展与文本的本质——二维数组与字符串
一、 函数的定位:隔离、解耦与外包
当开发者需要在不同时间点执行极其相似的运算工作(比如反复几十次计算一系列数字的最大公约数)时,早期的做法是将代码反复复制粘贴。这不仅极大地撑爆了编译后的程序体积,一旦某部分的算法需要调整,则要求在全代码范围内做地毯式的人工替换。
函数(Function) 的设立正是为了彻底斩断这种耦合。它的核心定位非常明确:外包黑盒。 底层工程界通过制定标准,允许我们将一段独立、完整、且目标明确的功能性代码段打包装盒封闭起来。外层主干程序不需要、也无权过问黑盒内部的具体执行步骤。它只需负责向黑盒提供规定的原始原材料(输入),然后在特定端口静静等待收取加工好的成品(输出)。这彻底将主线逻辑和具体细节运算切割开来,在业界被称为“模块化(Modularization)”。
全文详见:https://www.coderli.com/cs-basics-18-cpp-function/
https://www.coderli.com/cs-basics-18-cpp-function/
https://www.coderli.com/cs-basics-18-cpp-function/


390

被折叠的 条评论
为什么被折叠?



