模塊化
- 一.什么是模塊化編程?
- 二.為什么要進行模塊化編程?
- 1. .h檔案的介紹
- 1.1. .h檔案的書寫有哪些規則?
- 1.2. .h檔案的書寫方式是什么?
- 1.1.1 開頭怎么寫?
- 1.1.2 結尾怎么寫?
- 1.3 sfr,sbit 和 extern 介紹及作用:
- 2. .c檔案的介紹:
- 3. .h檔案的添加:
- 3.1 該工程實作的功能是什么?
- 3.2如何進行函式分裝呢?
- 3.3如何建立一個.h檔案呢?
- 3.4如何新建一個.c檔案?
一.什么是模塊化編程?
所謂模塊化編程,就是我們在創建一個工程之前,先對我們的需求進行分析,根據所需功能挑選相應模塊,對這些模塊進行相應的編程,封裝成對應的.C和.H檔案,最后在我的main.c中對.h檔案進行預編譯,進而呼叫各個模塊C檔案內的函式,實作工程完整功能,
二.為什么要進行模塊化編程?
模塊化編程可以使主函式所在.c檔案看起來更精簡,所謂模塊化就是進行分裝,
1. .h檔案的介紹
1.1. .h檔案的書寫有哪些規則?
h檔案中可以對變數定義,函式宣告,陣列進行一個模塊化封裝,但不能有具體的函式,
1.2. .h檔案的書寫方式是什么?
例如:
led.h
#ifndef __LED_H_//
#define __LED_H_//
#include<reg52.h>
sbit LED=P2^5;
typedef unsigned char u8;
typedef unsigned int u16;
extern void delay(u16 a); //延時函式
extern void pao(); //跑馬燈函式,即使P2^5閃爍
#endif
即:
1.1.1 開頭怎么寫?
#ifndef __LED_H__
注:
LED前有一個空格和兩個下劃線,大寫檔案名稱,一個下劃線,大寫H,兩個空格,
ifndef的全稱是“if not define”,即如果沒有定義LED,則執行下一步宏定義,
#define __LED_H__
注:
同上
1.1.2 結尾怎么寫?
#endif
作用:
即使.c檔案中同時包含兩個LED.h,也不會出現重定義的錯誤,
sfr P0 = 0x90;
sbit LED=P2^5;
extern void delay(u16 a);
1.3 sfr,sbit 和 extern 介紹及作用:
1.sfr :
"special function register ",特殊功能暫存器,用來存放各種功能部件的資料,狀態,資料命令,
在書寫.h檔案時用法:
變數名=地址名,其中等號右邊必須為數字常量,不能包含+ -等運算子,數值也不能隨意;
作用:
用在.h檔案中,相當于將地址命名;
2.sbit :
在書寫.h檔案時:
(1)sbit 位變數名=地址值 ;
(2)sbit 位變數名=SFR名稱^變數位地址值 ;
(3)sbit 位變數名=SFR地址值^變數位地址值 ;
extern 即用于在.h檔案中宣告函式,
作用:
定義埠;
extern:
用于在.h檔案中的函式或變數宣告,而且宣告是不分配地址空間的,只有定義才分配地址空間,
作用:
宣告函式或變數,在.h檔案中不得定義全域變數,以防被多個源檔案參考時報錯,但是可以在某個源檔案中定義全域變數,然后在.h檔案中進行宣告,加入.h檔案便可以在源檔案中使用,
2. .c檔案的介紹:
在一個工程中只可以有一個主函式,但并不是只可以有一個.c檔案,在.c檔案中可以放置具體函式等,來配合.h檔案,以達到精簡含有主函式的.c檔案的要求,
例如:
LED.h
#ifndef __LED_H_
#define __LED_H_
#include<reg52.h>
sbit LED=P2;
typedef unsigned char u8;
typedef unsigned int u16;
extern void delay(u16 a); //延時函式
extern void marquee(); //跑馬燈函式,使led燈閃爍
#endif
LED.c
#include"led.h"
void delay(u16 a)
{
u16 i;
while(i--);
} //延時函式
void marquee()
{
LED=0;
delay(50000);
LED=1;
delay(50000);//延時
} //跑馬燈函式
main.c
#include"led.h"
void main()
{
while(1)
{
marquee();//跑馬燈函式,使led燈閃爍
}
}
3. .h檔案的添加:
3.1 該工程實作的功能是什么?
使led燈閃爍,
3.2如何進行函式分裝呢?
首先區分好哪一部分是主函式,哪一部分是定義具體函式,哪一部分是宣告和定義;然后分別將三部分分別放在三個檔案中,一一對應.c檔案.c檔案.h檔案,
3.3如何建立一個.h檔案呢?
首先點擊新建檔案,然后重命名(知曉功能,方便下次使用),接下來必須保存在main.c檔案所在檔案夾中,然后可以做好批注,方便了解另一個相匹配的.c檔案內容,
3.4如何新建一個.c檔案?
同.h檔案,但不能含有主函式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279902.html
標籤:其他
上一篇:C語言實作簡單的三子棋
下一篇:LLC諧振變換器原理及變頻控制
