c語言是模組化程式設計的工具,模組如何組織,模組之間如何互動應該是個大問題。我覺得有以下幾個值得注意的地方(不對的地方請大家指正):
1、每個原始檔就是一個獨立的模組,它應該能夠在不連線任何其它模組、不需要其它原始檔的情況下獨立編譯。
2、模組之間是透過函式、常量、變數、結構定義、宏(似乎也是常量的一種)進行互動的
3、每個模組應該包括匯入和匯出兩個部分,比如要呼叫另外一個模組的函式foo(),需要
extern int foo();
這應該屬於模組的匯入部分
而由該模組提供的函式,應該在相應的標頭檔案中宣告,作為模組的匯出部分。
模組的匯出部分應該放在該模組的標頭檔案中。
4、如果只在本模組使用的變數,在本模組中定義成static的就可以了;否則就是全域性變數,全域性變數在標頭檔案中宣告一下,同時也作為模組的匯出部分。
5、宏既可以定義在標頭檔案中,也可以定義在原始檔中。如果宏只是模組中用到,相當於區域性常量,放到原始檔中好了;如果其它模組也要用到,那麼把它放到標頭檔案中去。
6、結構定義似乎都放在標頭檔案中。是不是應該另外有一個頭檔案,專門用來定義結構???
c語言是模組化程式設計的工具,模組如何組織,模組之間如何互動應該是個大問題。我覺得有以下幾個值得注意的地方(不對的地方請大家指正):
1、每個原始檔就是一個獨立的模組,它應該能夠在不連線任何其它模組、不需要其它原始檔的情況下獨立編譯。
2、模組之間是透過函式、常量、變數、結構定義、宏(似乎也是常量的一種)進行互動的
3、每個模組應該包括匯入和匯出兩個部分,比如要呼叫另外一個模組的函式foo(),需要
extern int foo();
這應該屬於模組的匯入部分
而由該模組提供的函式,應該在相應的標頭檔案中宣告,作為模組的匯出部分。
模組的匯出部分應該放在該模組的標頭檔案中。
4、如果只在本模組使用的變數,在本模組中定義成static的就可以了;否則就是全域性變數,全域性變數在標頭檔案中宣告一下,同時也作為模組的匯出部分。
5、宏既可以定義在標頭檔案中,也可以定義在原始檔中。如果宏只是模組中用到,相當於區域性常量,放到原始檔中好了;如果其它模組也要用到,那麼把它放到標頭檔案中去。
6、結構定義似乎都放在標頭檔案中。是不是應該另外有一個頭檔案,專門用來定義結構???