(十)模块化开发 -- 前言

前言

把一个大的问题分解成小片段的策略的方法在程序设计过程的很多阶段都会用到。

比如碰到一个50行的函数时,最好的方法是把它分成几个相互调用的小函数来完成任务。

当碰到一个包含50个函数的程序时,最好的办法就是把程序再分成几个更小的源文件。
每个源文件都包含一组相关的函数。

  • 模块(module)
    由整个程序的一部分组成的较小的源文件。

可以把同一模块作为许多不同的应用程序一部分。


当把一个程序分成模块的时候,选择合适的分解方法来减少模块之间相互依赖的程度是很重要的。

  • 主模块(main module)
    包含main函数的模块称作主模块,在分解层次中处于最高层。

每个其他模块代表一个独立的抽象,其操作在一个接口中定义。


为了说明这个原则,假设已经编写了一个如图10-1所示的文件program.c
这个程序由一个文件组成,该文件包含一个主程序和两个过程ProcAProcB

可以把这个源文件分解成包括main函数的主模块和两个子模块。
第一个子模块包括ProcA,第二个子模块包括ProcB,如图10-2所示:

主模块现在只包含整个程序的部分代码。函数ProcAProcB的实现是在单独的模块中。


从某种意义上说,每个子模块都作为主模块的库。和任何库一样,每个模块必须有一个接口,为编译器提供关于模块所包含的函数的必要信息。

在图10-2中,这些接口表示为头文件module1.hmodule2.h

以上是一个简化了的模块开发的例子。在更典型的应用中,每个模块包含一系列相关的函数,这些函数可以形成一个可容易识别的作为一个整体的应用的组件。





参考
《C语言的科学和艺术》 —— 第10章 模块化开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值