官术网_书友最值得收藏!

第6天 分割編譯與中斷處理

1 分割源文件(harib03a)

本來(lái)想接著詳細(xì)講解一下昨天剩下的程序,但一上來(lái)就說(shuō)這些,有點(diǎn)乏味,所以還是先做點(diǎn)準(zhǔn)備活動(dòng)吧。不經(jīng)意地看一下bootpack.c,發(fā)現(xiàn)它竟然已長(zhǎng)達(dá)近300行,是太長(zhǎng)了點(diǎn)。所以我們決定把它分割為幾部分。

將源文件分割為幾部分的利弊,大致如下。

優(yōu)點(diǎn)

(1) 按照處理內(nèi)容進(jìn)行分類(lèi),如果分得好的話(huà),將來(lái)進(jìn)行修改時(shí),容易找到地方。

(2) 如果Makefile寫(xiě)得好,只需要編譯修改過(guò)的文件,就可以提高make的速度。

(3) 單個(gè)源文件都不長(zhǎng)。多個(gè)小文件比一個(gè)大文件好處理。

(4) 看起來(lái)很酷(笑)。

缺點(diǎn)

(5) 源文件數(shù)量增加。

(6) 分類(lèi)分得不好的話(huà),修改時(shí)不容易找到地方。

■■■■■

我們先將源文件按下圖分割一下看看。

分割并不是很難,但有一點(diǎn)很關(guān)鍵。比如如果graphic.c也想使用naskfunc.nas的函數(shù),就必須要寫(xiě)上“void io_out8(int port, int data); ”這種函數(shù)聲明。雖然這都已經(jīng)寫(xiě)在bootpack.c里了,但編譯器在編譯graphic.c時(shí),根本不知道有bootpack.c存在。

這樣整理一下看起來(lái)就清爽多了。對(duì)應(yīng)源文件的分割,我們還要修改Makefile,流程如下:

理解了這個(gè)流程,Makefile也就很容易看懂了。

現(xiàn)在再來(lái)“make run”。運(yùn)行起來(lái)一點(diǎn)問(wèn)題也沒(méi)有,分割成功了。

主站蜘蛛池模板: 广河县| 磴口县| 苍南县| 嵊泗县| 洪雅县| 墨竹工卡县| 北海市| 聂荣县| 阜宁县| 定陶县| 陕西省| 玉田县| 怀集县| 神农架林区| 天等县| 莱芜市| 佳木斯市| 海盐县| 西丰县| 新竹县| 昌宁县| 灌阳县| 甘德县| 澄城县| 布拖县| 鹤庆县| 古蔺县| 普陀区| 江津市| 云阳县| 普洱| 萨嘎县| 神木县| 大方县| 改则县| 钟祥市| 姚安县| 阳谷县| 宽城| 德安县| 舒城县|