在理想的模組化程式設計中,每個模組都可以看做是乙個黑盒,只需要了解模組提供的功能以及使用的方法,不需要關心具體實現該模組功能的策略和方法,即提供的是機制而不是策略,機制即功能,策略即方法。就好像我們買了一部手機,只需要會用它所提供的各種功能即可,至於各種功能在底層是如何實現的,使用者不需要關心。
在大型程式開發中,乙個程式由不同的模組組成,可能不同的模組會由不同的人員負責。在編寫某個模組的時候,很可能需要呼叫別人寫好的模組的介面。這個時候關心的是:其他模組提供了什麼樣的介面,應該如何去呼叫,至於模組內部是如何實現的,對於呼叫者而言,無須過多關注。模組對外提供的只是介面,把不需要的細節盡可能對外部隱藏起來,這正是採用模組化程式設計所需要注意的地方。
乙個最小的模組單元包含兩個檔案:乙個是「.h」檔案(又稱為標頭檔案);另乙個是「.c」檔案(又稱為原始檔)。
1.「.h」檔案(又稱為標頭檔案)
該檔案可以理解為乙份介面描述檔案,其檔案內部一般不包含任何實質性的函式**,可以把這個標頭檔案理解成為乙份說明書,其內容就是這個模組對外提供的介面函式、介面變數以及使用說明等。
此外,該檔案也可以包含一些很重要的巨集定義以及一些資料結構的資訊,離開了這些資訊,該模組提供的介面函式或者介面變數很可能就無法正常使用。
標頭檔案的基本結構原則是:不該讓外界知道的資訊就不應該出現在標頭檔案裡,而供外界呼叫的模組內介面函式或介面變數等需要的資訊就一定要出現在標頭檔案裡,否則,外界就無法正確地呼叫該模組提供的功能。
當外部函式或者檔案呼叫該模組提供的介面函式或變數時,就必須包含該模組提供的這個介面描述檔案:「.h」檔案(標頭檔案)。同時,該模組的「.c」檔案也需要包含這個模組標頭檔案(因為它包含了模組原始檔中所需要的巨集定義或資料結構等資訊)。
通常,標頭檔案的名字應該與原始檔的名字保持一致,這樣便可以清晰地知道哪個標頭檔案是對哪個原始檔的描述。
2.「.c」檔案(又稱為原始檔)
該檔案主要功能是對「.h」檔案中宣告的外部函式進行具體的實現,對具體實現方式沒有特殊規定,只要能實現其函式的功能即可。
注意:嵌入式開發過程中,有時候會碰到包含很多檔案的相對複雜的模組,其實這些複雜的模組就是最小的模組單元的集合,將需要提供給外部的介面函式或者介面變數再次重新封裝到乙個或幾個標頭檔案中,然後提供給外部使用。
模組化程式設計
將乙個5元素陣列,右移n位,n從鍵盤輸入,首尾相接 例如 陣列中的元素為 那麼 n 3 的結果如下 資料是向右邊移三位,那麼,我轉化成先移一位的情況。因為當移一位的問題解決了,移動n位只需要將此過程迴圈n次即可 1.把a 1 放到臨時空間t t a 1 2.依次把前面元素的值放到後面的空間裡面.從後...
模組化設計
儘管寫過很多模組,但一直對於模組化設計,沒有一直很清晰的認識,這次學習了軟體設計之道,終於從概念上對模組化設計有了乙個更清晰的認識。乙個軟體本質上是完成乙個或多個特定的功能,所以,寫程式的第一目標是實現需求。既然是實現需求,那是不是隨便怎麼寫,只要完成功能就行呢?不是的,因為,軟體是生命週期的,在乙...
模組化程式設計小結
模組化程式設計,可以讓程式變得容易理解,結構更加清晰,下面小結一下如何進行模組化程式設計 本文以keil軟體進行舉例 1 將所需要的程式分為 c 和 h 兩類,其中 c 中用來實現程式,h 則用來宣告程式 2 在 c 的檔案中,包含所需的標頭檔案,如 include reg52.h 3 在宣告函式的...