C语言模块化编程

目标:

  • 有序,便捷地建立大型工程。
  • 追求接口单一性,将不需要的细节尽可能对外部隐藏。
  • 便于重复利用代码。
  • 便于分工合作

方式:

主函数调用模块函数。

具体实施:

根据功能将工程划分为不同模块。主函数只调用函数,而不定义函数。在各模块文件中定义功能函数,并将要用到的函数利用同名头文件申明外部函数供其他文件调用。

例子

流水灯设计
原程序代码:

#include<reg52.h>
sbit LED=P1^0;
unsigned int i,j;

void main()
{

while(1)

{

P1=~(1<<j++);

if(j==8)

j=0;

for(i=0;i<50000;i++);

}

}

我们将其模块划分并重新编译。首先分析功能可分为LED模块,主函数。
对应为:

main.c
Led.c Led.h

Led.c

#include <reg52.h>
#include "Led.h"
sbit LED=P1^0;
unsigned int i,j;

void ledFlash(void)
{
P1=~(1<<j); //灯亮

}

void ledStateChange(void)
{

if(j==8)
j=0;
for(i=0;i<50000;i++);   //延时
j++;

}

Led.h

#ifndef _LED_H_
#define _LED_H_
extern void ledFlash(void);
extern void ledStateChange(void);
#endif

main.c

#include <reg52.h>
#include "Led.h"

void main()
{
while(1)
{
ledFlash();
ledStateChange();
}
}

结果截图:

2017-06-25_233847.png

总结:

主函数中将具体功能隐藏至其他模块文件中,通过引用头文件、外部函数调用函数。平时多积累相关模块提高代码复用率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容