c语言是模块化编程的工具,模块如何组织,模块之间如何交互应该是个大问题。我觉得有以下几个值得注意的地方(不对的地方请大家指正):
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟主机、营销软件、网站建设、裕民网站维护、网站推广。
1、每个源文件就是一个独立的模块,它应该能够在不连接任何其它模块、不需要其它源文件的情况下独立编译。
2、模块之间是通过函数、常量、变量、结构定义、宏(似乎也是常量的一种)进行交互的
3、每个模块应该包括导入和导出两个部分,比如要调用另外一个模块的函数foo(),需要
extern int foo();
这应该属于模块的导入部分
而由该模块提供的函数,应该在相应的头文件中声明,作为模块的导出部分。
模块的导出部分应该放在该模块的头文件中。
4、如果只在本模块使用的变量,在本模块中定义成static的就可以了;否则就是全局变量,全局变量在头文件中声明一下,同时也作为模块的导出部分。
5、宏既可以定义在头文件中,也可以定义在源文件中。如果宏只是模块中用到,相当于局部常量,放到源文件中好了;如果其它模块也要用到,那么把它放到头文件中去。
6、结构定义似乎都放在头文件中。是不是应该另外有一个头文件,专门用来定义结构???
首先,我不知道自己的想法是否正确;其次,关于到底应该怎么样组织文件,我想应该也是有个标准的,可惜我没找到这样的资料。希望有高人能站出来指点一下,谢谢
以函数 为小模块。
以文件为中模块。
若干个文件编译成库,形成大模块。
这样一级级的 实现模块化。
C语言中的模块化体现在两个方面:
1 函数。函数是C语言的最小单位,每个函数均实现一个独立的功能,于是每个函数均可以当做是一个最小的功能模块。这样,C语言就实现了最基本的模块化。
2 文件。在C语言中,支持一个程序由多个源文件编译,所以可以把类似功能的一组函数写在同一个文件中,以源文件为单位,实现模块化。当模块较大时,可以写在多个头文件中,然后编译成一个库文件,以库文件为单位,实现模块化。
C语言中用函数来实现程序模块。
模块化程序设计是将一个大的任务分解成若干个小任务,再将小任务分解成更小的任务,直到每一个任务都只完成一个独立功能。这样的每个任务都叫做模块,C语言中模块是用函数来实现的。
借助函数来实现程序模块化,把你想实现的功能用函数来实现,不同功能的就用不同的函数来实现,而且,函数在一定程度上可以被复用,所以称为模块,搜索零基础学通C语言系列大全之线程_模块儿_静态库_循环总结视频教程就可以看了。
模块化编程是为了更好的管理工程、方便以后移植代码、使主函数或主文件(即有main函数的那个文件)变得简单,因为我们读代码时一般都是从主函数开始读的。
那怎么进行模块化呢?
简单的就是一个功能包装成一个函数,要实现什么功能就调用哪个函数实现。
而复杂点的就是,一个功能模块统一放一个C文件中,这个模块相关的函数全部在这个C文件中实现,在主文件(即有main函数的C文件)想要使用这个模块的功能函数,只需要包含它的头文件就可以调用了。那头文件就只是放这个功能模块的函数声明。
这样子做,以后移植就方便多了。如果别的工程需要这个功能模块,只需复制一下它的C文件已经H文件到这个工程目录下,就能使用。
比如实现LCD描字、划线、画圆等等函数都放在一个叫做lcd.c的文件中,那就应该有一个叫做lcd.h的文件跟它对应,这个.h都是放这个.c文件对外函数的声明。主文件的开头出只需来一个#include"lcd.h"就可以调用这些画圆划线函数了。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款