一個函數(shù)設(shè)計完后,我們可以用三種方法處理它:1)把它放在main()函數(shù)的同一個文件中;2)把它和寫好的其它函數(shù)一起放在另一個文件中;3)把它放在函數(shù)庫中。下面分別討論這三種方法。
4.6.1程序文件的大小
因?yàn)镃語言允許分別編譯,很自然就會提出這樣的問題:一個文件的最適宜的規(guī)模是多大?這規(guī)模很重要,因?yàn)榫幾g時間與被編譯文件的大小直接相關(guān)。一般說來,鏈接處理的時間比編譯處理的時間短得多,且不需要經(jīng)常去重新編譯已經(jīng)運(yùn)行過的代碼;另一方面,不得
不同時處理多個文件也確實(shí)是件厭煩的事。
問題的答案是,每個用戶、每個編譯程序、每個操作系統(tǒng)環(huán)境都是不同的??墒菍Υ蟛糠治⑿蜋C(jī)和一般的C編譯程序來說。源程序文件不應(yīng)長于10000個字節(jié),建立短于5000個字節(jié)的文件,可以避免不少麻煩。
4.6.2分類組織文件
在開發(fā)一個大型程序時,最令人煩惱的而又是最常遇到的工作之一就是需要檢查每個文件,以確定某個函數(shù)的存放。在程序開發(fā)的早期做一點(diǎn)文件組織工作就可以避免這一問題。
首先可以把概念上有關(guān)的函數(shù)組織到一個文件中。如果在編寫正文編輯程序時,把刪除正文所用的所有函數(shù)放進(jìn)另一個文件,等等。
第二,把所有的通用函數(shù)放在一起。例如,在數(shù)據(jù)庫程序中,輸入/輸出格式編排函數(shù)是被其它函數(shù)調(diào)用的通用函數(shù),應(yīng)把它們放進(jìn)一個單獨(dú)的文件里。
第三,把最高層函數(shù)放進(jìn)一個單獨(dú)的文件中,如果空間允許,就和main()放在一起。最高層函數(shù)被用來啟動程序的總體活動。這些例程從本質(zhì)上定義了程序的操作。
4.6.3函數(shù)庫
從技術(shù)上講,函數(shù)庫與分別編譯的函數(shù)文件不同。當(dāng)庫中例程被鏈接到程序中,或當(dāng)使用一個分別編譯的文件時,文件中的所有函數(shù)都被裝入和鏈接到程序中去。對自己創(chuàng)建的函數(shù)文件中的大多數(shù)文件來說,文件中所有的函數(shù)都是要用到的。而對C的標(biāo)準(zhǔn)函數(shù)庫,永遠(yuǎn)也無法把所有的函數(shù)都連接到自己的程序中去,因?yàn)槟康拇a會大得嚇人!
有時候我們需要建立一個函數(shù)庫,例如,假定已經(jīng)完成了一套專門的統(tǒng)計函數(shù),如果當(dāng)前開發(fā)的某個程序僅僅需要求出一批數(shù)值的均值,我們就不必把這些函數(shù)全部裝入。在這種情況下,函數(shù)庫是很有用的。
大部分C語言的編譯程序都有建立函數(shù)庫的指令。操作過程因編譯程序不同而異,可從用戶手冊中尋找建庫的具體步驟。
C語言函數(shù)庫和文件
標(biāo)簽:c語言數(shù)據(jù)庫