资源描述:
《关于C程序效率的探讨》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2003年第5卷第3期巢湖学院学报No.3.,Vol.5.2003总第60期JournɑlofChɑohucollegeGenerɑlSeriɑlNo.60关于C程序效率的探讨赵正平(阜阳师范学院计算机系,安徽阜阳236032)摘要:C语言是一种应用广泛的计算机语言。从多方面探讨C程序的效率问题,并根据具体情况,提出优化C程序的方法。关键词:C语言;程序;效率;方法中图分类号:TP312文献标识码:A文章编号:1672-2868(2003)03-0093-04DiscussesonCProgramEfficiencyZHAOZheng-Ping(Dept.ofComputer,FuyangTe
2、achersCollege,AnhuiFuyang236032,China)Abstrɑct:Clanguageisacomputerlanguageofextensiveapplication.Inthispaper,wedis2cusstheefficiencyofcprogramindifferentaspects,andaccordingtothespecificcase,theauthorputssomesolutionsofoptimizingcprogram.Keywords:CLanguage;Program;Efficiency;SolutionC语言是国际上广泛流行的很有发
3、展前途的利用磁盘空间的话,则会降低存取速度或使程序计算机语言。它既可以用来写应用软件,也可以不易理解。本文从以下几个方面就如何提高C程用来写系统软件。它既具有一般高级语言的特序效率作一点探讨。性,又具有低级语言的特性,集高、低级语言的优一、函数的使用点于一身,所以受到计算机学习者的喜爱。C语C语言是一种函数型的语言,大部分功能都言已成为被广泛使用的教学语言。笔者在高校的通过调用函数来实现。所以应该了解C函数的若C语言教学过程中对学生编写的程序进行分析,干方面及其对程序长短和运行速度的影响。发现很多学生对程序的执行效率不能很好的把在程序设计中,常常将一些常用的功能模块握,造成编写的程序执行效率较
4、低,尤其是在学生编写成函数,放在函数库中供公共选用。编程时的数模竞赛和毕业设计的编程中最能体现这一问要善于利用函数以缩短程序长度和减少重复编写题。程序段的工作量。对于程序来说,效率应包括程序的执行速度一个源程序文件由一个或多个函数组成。一和对计算机系统资源的利用,我们只能根据具体个源程序文件就是一个编译单位,而不是以函数情况做出判断,然后进行优化。但是优化这一方为单位进行编译的。一个较大的C程序一般不希面可能又会损害另一方面。例如:采用程序的直望全放在一个源程序文件中,而将函数和其他内接编写而不调用函数的话,这样可以省去调用函容分别放在若干个源文件中,再由若干个源文件数的时间,以提高速度,但是
5、程序又被拉长了,占构成一个大的程序。这样可以分别编写,分别编用较多的磁盘空间;如果一味的压缩数据以充分译,以提高调用效率。收稿日期:2003-04-01作者简介:赵正平(1976-),女,安徽巢湖人,阜阳师范学院助教,在读研究生。·93·但是,C语言是用栈的语言,传给函数的局部}变量和参数都是以栈为临时存放之处,调用函数局部变量i和f都定义为寄存器变量,对以上时,返回地址也存放在栈中的,所以频繁的调用函程序执行时,只需直接从cpu的寄存器中存取i和数也会大大降低程序的执行速度。f的值。如果n的值很大,则能节约许多执行时例:某程序段间,从而提高程序的效率。写法1但是,在实际的应用中,寄存器变量的
6、使用受for(x=1;x<100;++x)具体机器中寄存器数目的限制,不能定义任意多{t=fac2(x)}个寄存器变量。如果定义了过多的寄存器变量,floatfac2(inty)编译程序会自动将超过限制的寄存器数目当自动{floatt;变量处理,放入内存中。而且不同系统对registert=abs(sin(y)P100P3.1416);变量的处理方法也不一样,有的更本不真正分配return(t);寄存器存储,仍作为自动变量分配内存单元。所}以register存储定义符只是一个“请求”,而不是一写法2个必须执行的“命令”。for(x=1;x<100;++x)当今的优化编译系统能够识别使用频繁的变
7、{t=abs(sin(x)P100P3.1416);}量,从而自动地将这些变量放在寄存器中,而不需同一功能的程序段,写法1的循环中使用要程序设计者指定。因此在实际应用中用regis2fac2()的函数,比写法2要多执行100次调用和返ter声明变量就没有必要了。回,大大降低了速度。但是,直接插入编写而不用三、指针和数组下标的使用函数的若干次调用又会使程序变得很长,在程序指针是C语言的一个重要特色,