提高C语言程序的效率

Author: Date: 1995-12-15

        首先是使用增量和减量操作符(++,--)。根据编译程序生成目标码的方式,使用增、减量操作算符比其等价语句执行快、占用内存少。对多数微机而言,可以不经过显示存、取指令而对内存字进行增、减量操作。
        其次是正确选用寄存器变量。变量存在寄存器中要比存在内存中存取速度快得多,但一般系统中允许用寄存器的变量有限,同一时刻可被操作的寄存器数目也有限,因此可以选择程序中的主要循环控制变量做寄存器变量。
        同时使用指针代替数组下标可以缩短代码,提高速度。使用指针总是使代码速度更快、占用内存更少,其优点在于:将数组地址送入指针后,每次循环仅对指针做增量操作,而数组下标在每次循环都要在前一个下标的基础上做运算。当使用下标更方便时应考虑使用下标。
        频繁地调用函数对速度也有一定的影响。函数的调用过程是往堆栈中压入、弹出信息的过程,当使用内嵌码时便可消除这两个过程。使用内嵌码的缺点是可能会使程序变得庞大,而且这样做所取得的效果并不明显,因此只有速度要求优先时才考虑使用这种方法。
        在一个程序设计中,数据结构的选择也很重要。选择不同的数据结构可能会对程序产生不同的限制。如使用定长数组,其缺陷一是数组规模限制了其长度,另一方面是不能充分利用内存,当内存扩展时,扩展部分不能使用,当内存减少,可能会导致空间不足而不能运行。在一个程序设计中要根据实际情况选择合适的数据结构。
        为了提高程序的可移植性,用户在编制程序时应遵循一个原则:除非是对操作系统的依赖就可使程序变得高速、优秀、具有商业价值,否则不要依赖系统;当必须使用系统调用时,所有的调用都限制在一主函数中,以便于移植时进行修改。