① c语言模块化程序设计
1.模块化编程是指将一个庞大的程序划分为若干个功能独立的模块,对各个模块进行独立开发,然后再将这些模块统一合并为一个完整的程序。这是C语言面向过程的编程方法,可以缩短开发周期,提高程序的可读性和可维护性。
2.在单片机程序里,程序比较小或者功能比较简单的时候,我们不需要采用模块化编程,但是,当程序功能复杂、涉及的资源较多的时候,模块化编程就能体现它的优越性了。如前面我们写过的HT1380驱动程序、独立按键扫描程序和12864程序,每一个程序都是只用一个源文件编写就能完成,但是,当您制作一个12864液晶日历的时候,需要用到HT1380驱动程序、独立按键扫描程序和12864显示程序,如果把这三个程序全部集中在一个源文件里,将导致主体程序臃肿且杂乱,这样做并非不可取,只是降低了程序可读性、可维护性和代码的重用率。如果把这三个程序当做三个独立的模块放到你的主体工程进行模块化编程,效果就不一样了。实际上,模块化编程就是模块合并的过程,就是建立每个模块的头文件和源文件并将其加入到主体程序的过程。主体程序调用模块的函数是通过包含模块的头文件来实现,模块的头文件和源文件是模块密不可分的两个部分,缺一不可。所以,模块化编程必须提供每个模块的头文件和源文件。
② c语言中是如何实现模块化的
c语言是模块化编程的工具,模块如何组织,模块之间如何交互应该是个大问题。我觉得有以下几个值得注意的地方(不对的地方请大家指正):
1、每个源文件就是一个独立的模块,它应该能够在不连接任何其它模块、不需要其它源文件的情况下独立编译。
2、模块之间是通过函数、常量、变量、结构定义、宏(似乎也是常量的一种)进行交互的
3、每个模块应该包括导入和导出两个部分,比如要调用另外一个模块的函数foo(),需要
extern int foo();
这应该属于模块的导入部分
而由该模块提供的函数,应该在相应的头文件中声明,作为模块的导出部分。
模块的导出部分应该放在该模块的头文件中。
4、如果只在本模块使用的变量,在本模块中定义成static的就可以了;否则就是全局变量,全局变量在头文件中声明一下,同时也作为模块的导出部分。
5、宏既可以定义在头文件中,也可以定义在源文件中。如果宏只是模块中用到,相当于局部常量,放到源文件中好了;如果其它模块也要用到,那么把它放到头文件中去。
6、结构定义似乎都放在头文件中。是不是应该另外有一个头文件,专门用来定义结构???
首先,我不知道自己的想法是否正确;其次,关于到底应该怎么样组织文件,我想应该也是有个标准的,可惜我没找到这样的资料。希望有高人能站出来指点一下,谢谢
③ C语言的模块化编程还是不太理解,还请各位大神指点!
模块化编程是为了更好的管理工程、方便以后移植代码、使主函数或主文件(即有main函数的那个文件)变得简单,因为我们读代码时一般都是从主函数开始读的。
那怎么进行模块化呢?
简单的就是一个功能包装成一个函数,要实现什么功能就调用哪个函数实现。
而复杂点的就是,一个功能模块统一放一个C文件中,这个模块相关的函数全部在这个C文件中实现,在主文件(即有main函数的C文件)想要使用这个模块的功能函数,只需要包含它的头文件就可以调用了。那头文件就只是放这个功能模块的函数声明。
这样子做,以后移植就方便多了。如果别的工程需要这个功能模块,只需复制一下它的C文件已经H文件到这个工程目录下,就能使用。
比如实现LCD描字、划线、画圆等等函数都放在一个叫做lcd.c的文件中,那就应该有一个叫做lcd.h的文件跟它对应,这个.h都是放这个.c文件对外函数的声明。主文件的开头出只需来一个#include"lcd.h"就可以调用这些画圆划线函数了。
④ 理解,谈谈C语言函数的作用以及如何做模块化程序设计
C语言中的模块化体现在两个方面:
1 函数。函数是C语言的最小单位,每个函数均实现一个独立的功能,于是每个函数均可以当做是一个最小的功能模块。这样,C语言就实现了最基本的模块化。
2 文件。在C语言中,支持一个程序由多个源文件编译,所以可以把类似功能的一组函数写在同一个文件中,以源文件为单位,实现模块化。当模块较大时,可以写在多个头文件中,然后编译成一个库文件,以库文件为单位,实现模块化。
⑤ C语言的结构化和模块化有什么区别
结构化体现一种程序设计的思想,其基本原则是:从上到下,分而治之。
可以按照功能或其它原则把程序分成几个部分,分别设计。进而组合在一起,这时要考虑几个部分的通融性和兼容性。
模块化更多的是考虑一个功能在不同的情况下的通用性,我的意思是比如你设计了一个功能,你需要保证它能适应于不同的情况,比如适应于不同的数据类型等等。
模块化有点泛型的意思,就像系统提供的泛型函数,任何数据类型都可以调用的,另外,模块化具有封装性,需要把所设计的模块封装起来,对外只提供接口,其它部分只可以通过接口进行调用,因为考虑它的通用性,所以必须考虑它本身以及接口的通用性:它本身必须能够处理任何数据类型,接口必须能够接受和处理任何数据类型。
⑥ C语言如何进行模块化编程
模块化其实就是利用结构体、枚举、指针、函数指针等将外设进行封装,方便程序的阅读、修改和后期的移植等操作