C语言模块化编程

作者: 咸鱼爱学习 | 来源:发表于2017-06-25 23:40 被阅读190次

    目标:

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

    方式:

    主函数调用模块函数。

    具体实施:

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

    例子

    流水灯设计
    原程序代码:

    #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

    总结:

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

    相关文章

      网友评论

      本文标题:C语言模块化编程

      本文链接:https://www.haomeiwen.com/subject/vuqdcxtx.html