① c語言中是如何實現模塊化的
c語言是模塊化編程的工具,模塊如何組織,模塊之間如何交互應該是個大問題。我覺得有以下幾個值得注意的地方(不對的地方請大家指正):
1、每個源文件就是一個獨立的模塊,它應該能夠在不連接任何其它模塊、不需要其它源文件的情況下獨立編譯。
2、模塊之間是通過函數、常量、變數、結構定義、宏(似乎也是常量的一種)進行交互的
3、每個模塊應該包括導入和導出兩個部分,比如要調用另外一個模塊的函數foo(),需要
extern int foo();
這應該屬於模塊的導入部分
而由該模塊提供的函數,應該在相應的頭文件中聲明,作為模塊的導出部分。
模塊的導出部分應該放在該模塊的頭文件中。
4、如果只在本模塊使用的變數,在本模塊中定義成static的就可以了;否則就是全局變數,全局變數在頭文件中聲明一下,同時也作為模塊的導出部分。
5、宏既可以定義在頭文件中,也可以定義在源文件中。如果宏只是模塊中用到,相當於局部常量,放到源文件中好了;如果其它模塊也要用到,那麼把它放到頭文件中去。
6、結構定義似乎都放在頭文件中。是不是應該另外有一個頭文件,專門用來定義結構???
首先,我不知道自己的想法是否正確;其次,關於到底應該怎麼樣組織文件,我想應該也是有個標準的,可惜我沒找到這樣的資料。希望有高人能站出來指點一下,謝謝
② c語言是完全模塊化和結構化的語言,怎麼理解,什麼是模塊化和結構化
所謂模塊化,簡單的理解,就是說你的程序是由相互之間相對獨立的模塊組成。那麼具體的說,一個稍微大一點的程序,不可能用一個.c源文件寫上幾十萬行來完成它吧?這個程序會由許多分離的.c源文件來完成代碼編寫對吧。因此在組織源代碼的時候,程序員把在概念上和功能上相對獨立的模塊分離成單獨的.c源文件,這些.c源文件經過編譯器編譯之後成為獨立的.o目標文件,然後鏈接器將這些獨立的.o目標文件鏈接起來成為最終的程序。這就是模塊化的簡單理解,模塊化側重於「形成最終程序的源代碼可以分離編寫在各個.c源文件中」這個涵義。
而結構化則相對來說是一種程序邏輯上的概念。也就是說,你怎麼將你的程序最終要達成的功能以一種邏輯的方式將其分離為相對獨立的功能,而這些單獨的功能最終達成程序的整體功能。而一門語言要支持這種邏輯的分離,就必須提供一種相應的手段和方法來達成這種邏輯的分離對吧。簡單的說,如果C語言不允許你自己定義函數,要求你將所有的功能實現都必須寫在一個main函數裡面的話,你想想也知道那簡直太糟糕了對吧。所以C語言提供了一個函數的概念,你可以在函數里定義相對獨立的邏輯,函數與函數之間通過函數調用和參數傳遞來相互溝通。這樣就使得一個整體的邏輯可以被分離成相對獨立的邏輯,這些相對獨立的邏輯通過相互的溝通來達成整體的邏輯。結構化側重於「你可以將程序邏輯相互分離」這個涵義
③ c語言模塊化程序設計
1.模塊化編程是指將一個龐大的程序劃分為若干個功能獨立的模塊,對各個模塊進行獨立開發,然後再將這些模塊統一合並為一個完整的程序。這是C語言面向過程的編程方法,可以縮短開發周期,提高程序的可讀性和可維護性。
2.在單片機程序里,程序比較小或者功能比較簡單的時候,我們不需要採用模塊化編程,但是,當程序功能復雜、涉及的資源較多的時候,模塊化編程就能體現它的優越性了。如前面我們寫過的HT1380驅動程序、獨立按鍵掃描程序和12864程序,每一個程序都是只用一個源文件編寫就能完成,但是,當您製作一個12864液晶日歷的時候,需要用到HT1380驅動程序、獨立按鍵掃描程序和12864顯示程序,如果把這三個程序全部集中在一個源文件里,將導致主體程序臃腫且雜亂,這樣做並非不可取,只是降低了程序可讀性、可維護性和代碼的重用率。如果把這三個程序當做三個獨立的模塊放到你的主體工程進行模塊化編程,效果就不一樣了。實際上,模塊化編程就是模塊合並的過程,就是建立每個模塊的頭文件和源文件並將其加入到主體程序的過程。主體程序調用模塊的函數是通過包含模塊的頭文件來實現,模塊的頭文件和源文件是模塊密不可分的兩個部分,缺一不可。所以,模塊化編程必須提供每個模塊的頭文件和源文件。
④ 理解,談談C語言函數的作用以及如何做模塊化程序設計
C語言中的模塊化體現在兩個方面:
1 函數。函數是C語言的最小單位,每個函數均實現一個獨立的功能,於是每個函數均可以當做是一個最小的功能模塊。這樣,C語言就實現了最基本的模塊化。
2 文件。在C語言中,支持一個程序由多個源文件編譯,所以可以把類似功能的一組函數寫在同一個文件中,以源文件為單位,實現模塊化。當模塊較大時,可以寫在多個頭文件中,然後編譯成一個庫文件,以庫文件為單位,實現模塊化。