上QQ阅读APP看书,第一时间看更新
第6天 分割编译与中断处理
1 分割源文件(harib03a)
本来想接着详细讲解一下昨天剩下的程序,但一上来就说这些,有点乏味,所以还是先做点准备活动吧。不经意地看一下bootpack.c,发现它竟然已长达近300行,是太长了点。所以我们决定把它分割为几部分。
将源文件分割为几部分的利弊,大致如下。
优点
(1) 按照处理内容进行分类,如果分得好的话,将来进行修改时,容易找到地方。
(2) 如果Makefile写得好,只需要编译修改过的文件,就可以提高make的速度。
(3) 单个源文件都不长。多个小文件比一个大文件好处理。
(4) 看起来很酷(笑)。
缺点
(5) 源文件数量增加。
(6) 分类分得不好的话,修改时不容易找到地方。
■■■■■
我们先将源文件按下图分割一下看看。
分割并不是很难,但有一点很关键。比如如果graphic.c也想使用naskfunc.nas的函数,就必须要写上“void io_out8(int port, int data); ”这种函数声明。虽然这都已经写在bootpack.c里了,但编译器在编译graphic.c时,根本不知道有bootpack.c存在。
这样整理一下看起来就清爽多了。对应源文件的分割,我们还要修改Makefile,流程如下:
理解了这个流程,Makefile也就很容易看懂了。
现在再来“make run”。运行起来一点问题也没有,分割成功了。