一个函数设计完后,我们可以用三种方法处理它:1)把它放在main()函数的同一个文件中;2)把它和写好的其它函数一起放在另一个文件中;3)把它放在函数库中。下面分别讨论这三种方法。
4.6.1程序文件的大小因为c语言允许分别编译,很自然就会提出这样的问题:一个文件的最适宜的规模是多大?这规模很重要,因为编译时间与被编译文件的大小直接相关。一般说来,链接处理的时间比编译处理的时间短得多,且不需要经常去重新编译已经运行过的代码;另一方面,不得不同时处理多个文件也确实是件厌烦的事。
问题的答案是,每个用户、每个编译程序、每个操作系统环境都是不同的。可是对大部分微型机和一般的c编译程序来说。源程序文件不应长于10000个字节,建立短于5000个字节的文件,可以避免不少麻烦。
4.6.2分类组织文件在开发一个大型程序时,最令人烦恼的而又是最常遇到的工作之一就是需要检查每个文件,以确定某个函数的存放。在程序开发的早期做一点文件组织工作就可以避免这一问题。
首先可以把概念上有关的函数组织到一个文件中。如果在编写正文编辑程序时,把删除正文所用的所有函数放进另一个文件,等等。
第二,把所有的通用函数放在一起。例如,在数据库程序中,输入/输出格式编排函数是被其它函数调用的通用函数,应把它们放进一个单独的文件里。
第三,把最高层函数放进一个单独的文件中,如果空间允许,就和main()放在一起。最高层函数被用来启动程序的总体活动。这些例程从本质上定义了程序的操作。
4.6.3函数库从技术上讲,函数库与分别编译的函数文件不同。当库中例程被链接到程序中,或当使用一个分别编译的文件时,文件中的所有函数都被装入和链接到程序中去。对自己创建的函数文件中的大多数文件来说,文件中所有的函数都是要用到的。而对c的标准函数库,永远也无法把所有的函数都连接到自己的程序中去,因为目的码会大得吓人!
有时候我们需要建立一个函数库,例如,假定已经完成了一套专门的统计函数,如果当前开发的某个程序仅仅需要求出一批数值的均值,我们就不必把这些函数全部装入。在这种情况下,函数库是很有用的。
大部分c语言的编译程序都有建立函数库的指令。操作过程因编译程序不同而异,可从用户手册中寻找建库的具体步骤。