在此前的旅程中,我们顺着程序的生命流水线,从存储单个数据(变量)一路走到了成规模的信息容纳仓库(数组),并使用判断与循环给程序注入了逻辑能力。

理论上,你完全可以把所有的代码统统塞进 main() 主程序里。但当代码量达到数千行时,这种做法会暴露出极其直接的致命缺点:

  1. 代码极难维护且难以复用:各种计算任务糅杂在一起,想顺着逻辑排查 Bug 如同大海捞针。遇到相同逻辑时只能反复复制粘贴大量废话代码,十分臃肿。
  2. 变量极易发生踩踏冲突:成百上千个临时变量挤在没有任何物理隔离的同一个大平层空间里。稍微出现一点名称雷同或数组越界,新进场的代码就会意外覆盖掉他人的重要数据,引发全局连环崩溃。

为了对抗大规模软件工程发展带来的混乱。计算机科学在底层设计出了一种严格且标准化的工业级隔离屏障方案——函数(Function)

本系列文章往期回顾:

第二部分 【C++的奇妙之旅】

软件


一、 函数的定位:隔离、解耦与外包

当开发者需要在不同时间点执行极其相似的运算工作(比如反复几十次计算一系列数字的最大公约数)时,早期的做法是将代码反复复制粘贴。这不仅极大地撑爆了编译后的程序体积,一旦某部分的算法需要调整,则要求在全代码范围内做地毯式的人工替换。

函数(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/

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐