嵌入式C语言 模块化 精讲

1、先不管头文件(预编译),在程序编译时,程序都是先从main()函数开始进行编译的,一般的程序都是这样的:

(1)#include “A.h”

         delay()

        {

        ...

        }

      main();

      {

     delay()

      …

       }

分析:这里由于delay()main()函数之,所以main()调用delay()时,delay()不需要声明

 

(2)#include “A.h”

         void delay();         //delay()函数声明

        main()

        {

       delay();   //delay()函数调用

        …

       }

         delay()      //delay()函数定义

      {

       ...

       }

分析:这里由于delay()main()函数之,所以main()调用delay()时,delay()需要声明

 

2、当我们为了程序能够更加的清晰,易于分析理解,往往需要将程序进行模块化,也就是将特定的功能模块给封装起来。

但是源程序的运行也是如前面1步骤一样,.c文件同样都是main()函数开始编译,当有调用其他函数时,则要加上相应的头文件delay.h delay函数声明),然后再运行(调用)相应的.c文件delay.c  delay函数定义)。

 当我进行模块化的时候,程序运行则是跟(2)是一样的。需要在main()前面声明main()调用的函数。 


3.模块化实例

用户自己编写:delay.h ,delay.c

 

 

delay.h 文件

------------------------------

void delay();   //delay函数声明

 

 

delay.c 文件

-----------------------------------

delay() //delay函数定义

{

}

 

main.c 文件

---------------------------------------

#include “A.h”

#include “delay.h”   //delay函数声明在delay.h内

main()

{

delay();  //delay函数调用

….

}

 

注意:当在main()函数中调用运行delay()函数时,此时是调用了delay.c 文件中的delay()函数。

记住一点:所有的.c文件其实是相当于一个整体的.c文件,运行的过程也和我们写一个.c文件的过程是一样,之所以要分开多个.c文件,则是为了我们便于方便管理,程序的模块化。

你可能感兴趣的:(C语言)