第四节 统一格式 一、格式统一之优点 不论采用何种程序语言,凡是共同工作、须相互研讨,或者在同一部门中,分担成 败责任者,应该有统一的程序写作方式。这样不仅便于沟通,提高程序的品质,且可避 免因某一程序员之离职或出缺所造成的后遗症。 良好的程序,应如一篇美妙的文学作品,其中有技巧,有意境。其功能不仅表现在 执行的效率上,也可以作为同行间学习、欣赏的媒介,这些都必须透过统一的格式达成。 尤其是把组合程序写作当作一种艺术创作,就必须经常相互观摩,如果没有共通的 格式规定,则这样的程序和「天书」可以说没有多大的分别。不论注释写得再好,一般 程序员自己都怕看自己的程序,更何况参阅他人的? 但若有统一的格式,养成习惯后, 不仅易看易懂,而且寻找、修改方便,写作也轻松省事。 二、规格 1,统一用大写字母,以利于阅读。 2,空格处应采用 TAB,齐头等距,一目了然。 3,标题之后立即改行输入,以便阅读。 4,每行不得超过70个字母,以免长度不等,画面紊乱。 5,注记位于指令后,在第五个 TAB的起点,空间不足时,可换行,但位置齐一。 6,所有缓冲器统一定义在程序之前,不可夹杂在程序中间。 7,除了需要作超过程序段的FAR CALL使用'PROC FAR'外,切勿使用'PROC NEAR '形式, 因这种写法毫无意义。 8,程序开始时,应有注记说明使用要点。 以下举例说明统一格式: 1: PAGE 60,132 2: TITLE [程序名],[程序员代号],[编号],[功能说明] 3: 4: DG SEGMENT PUBLIC 5: EXTRN BWSCA1:WORD,.. 6: DG ENDS 7: 8: .. 9: .. 10: .. 11: 12: CG SEGMENT PUBLIC 13: EXTRN MMMM:NEAR,.. 14: .. 15: PUBLIC XXXX,YYYY,.. 16: ASSUME CS:CG,DS:DG,ES:DG 17: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 18: ; REM ............ ; 19: ; ...................... ; 20: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 21: START: 22: CLD 23: MOV AX,DG 24: MOV DS,AX 25: .. 26: .. 27: .. 28: 29:CG ENDS 30: END START 第一条的 PAGE 是供打印用的「保留指令」,表示每页所印的行数及列数。其后之 60,132 即为60行, 132个字符。 第二条的 TITLE 为供查阅之「保留指令」。 前述REM 注记栏中,应说明该段程序的功能、应用条件,以便其它程序员共同使用。 三、注记 注记的目的在于日后自己或他人能很容易地做程序修改、维护。因此所做描述当力 求详尽。不幸的是,不论多么精彩的文句,总有不足之处。因此,注记时需把握重点, 大体说来,程序需加以说明的,不外: 1,功能:做什么工作,需要何种先决条件。 2,参数:设些什么数据,以供本段程序处理。 3,缓冲器:用什么缓冲器,其工作特性如何。 4,结果:执行后所产生的结果。 5,子程序调用:在本段程序中,所需调用的子程序名。 6,重要声明:如寄存器是否被破坏,或其它注意的事项。 如: 【功能】:读键盘缓冲区输入码,依性质返回ASCII+扫 瞄码或中文内码 【参数】: AH = 00H 【返回】: 11AL< 80H,AH = 扫瞄码,AL = ASCII 12AL≧80H,AL = 四字符中文内码之一 【破坏暂存器】:AX 【备注】:以本功能取中文内码,须连取4次,依序得 到一中文4字符内码。 当然,如果时间充足,最好能有程序的全部说明,以及制作、修改的细部记录。 问题在于任何程序发展之初,一定乏善可陈。再加上不断的修改、增补,其间变化 复杂无比。程序员又要全神贯注,解决问题,又要考虑如何注记,一心两用,必然谈不 到效率。 那么怎样做才对呢?我建议先让程序员自由发挥,在初期有无注记无关紧要。待程 序完成了,大致上没有错误,这时,就应该停下来,从头到尾,将程序彻底整理一番。 这样不仅加注记容易,而且程序员有机会重新「欣赏」自己的心血结晶,该改的改, 该合并的合并,该删的删。最后,程序员经过反思,研究,技术将会大幅度进步,程序 更精简,注记也正确无误,工作也达到最高效率。