智能车制作

标题: C语言优化小技巧 [打印本页]

作者: yhhedu    时间: 2014-3-23 15:13
标题: C语言优化小技巧
C语言优化小技巧
在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考:
1.C
于代码在程序中的优化
  
现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码长度的平衡。如果要获得更小且执行效率更高的代码,需要程序员手工对代码进行优化。

2.
变量类型的定义
  
不同的数据类型所生成的机器代码长度相差很多,变量类型选取的范围越小运行速度越快,占用的内存越少。能够使用char(字符型)定义的变量,就不要使用整型(int)变量定义;能够使用整型变量定义的变量就不要用长整型(long int),能不使用浮点(float)变量就不要使用浮点型(double)变量。
  
相同类型的数据类型,有无符号对机器代码长度也有影响。因此我们应按照实际需要合理的选用数据类型。当然,在定义变量后不要超过变量的作用范围,如果超过变量的范围赋值,C编译器并不报错,但程序运行结果却错了,而且这样的错误很难发现。

3.
提高循环语言的效率
  
C 语言中循环语句使用频繁,提高循环体效率的基本办法就是降低循环体的复杂性。在多重循环中,应将最长的循环放在最内层,最短的循环放在最外层。这样可以减少 CPU跨切循环的次数。如例 1-1 的效率比 1-2 的效率要高:

int i,j;

for (i = 0; i < 10; i++)
{
    for (j = 0; j < 20; j++)
    {
        ... ...
    }

} //
例子 1-1

for (j = 0; j < 20; j++)
{
    for (i = 0; i < 10; i++)
    {
        ... ...
    }

} //
例子 1-2


4.
采用数学方法优化程序
  
数学是计算机之母,没有数学的依据和基础,就没有计算机的发展,所以在编写程序的时候,采用一些数学算法会对程序的执行效率有数量级的提高。有时候这个问题常常被大家忽略, 对于没有经验的程序员来说更是如此。例如: 1100的自然数和sum = 100*(100+1)/2; 数学公式. (n +1)*n/2
  
优化算法和数据结构对提高代码的效率有很大的帮助。当然有时候时间效率和空间效率是对立的,此时应分析哪个更重要,做出适当的折中。另外,在进行优化的时候不要片面的追求紧凑的代码,因为紧凑的代码并不能产生高效率的机器码。

   
当然代码优化的方法还有很多,这里只是简单列举几个例子,希望能为初学者提供一些帮助。
信盈达培训心是深圳信盈达电子有限公司下属的培训技术服务机构,培训中心依托公司强大的研发队伍,培训老师均是从事多年电子产品、ARM项目开发、嵌入式Linux项目开发的资深高级工程师,拥有丰富的实际工作经验,能让你高起点入门,快速学会ARM、学会嵌入Linux。
教学特色:
  1.小班授课(3-6人)、保证教学质量;
     2.由具有丰富开发经验的资深嵌入式Linux工程师、国际项目经理主讲;
     3.理论联系实际、边理论边实践、学用结合、以实践为主(实践课程占60%以上)、手把手教学;
     4.每个课程均有“项目开发课程设计”,在资深工程师的指导下完成,让你真正具备项目开发经验;
     5.长期为学员**免费技术咨询;
     6.学习成绩优异者我们可推荐就业。
报名方式:
   1.电话报名:宋老师 0371-86629510   15236286825 3.QQ咨询:长期在线QQ:2905283896
由经验丰富的嵌入式工程师实战教学,手把手操作教学,以实践为主。
所有学员在学习期间均会获得我公司研发部十几位资深高级工程师、国际项目经理等的技术支持,除正常学习时间外,其他任何时间学员均可前来进行额外实践。

上课地点:郑州市金水区文化路82号数码银座B座401室(创新大厦对面)
每周末开设免费的公开课程,有兴趣的朋友可以电话咨询试听:0371-86629510


作者: 简单丹    时间: 2014-3-23 15:26

作者: 1508323954    时间: 2014-3-23 15:37
广告
作者: 姑娘放开那黄瓜    时间: 2014-3-23 16:27

作者: 溯流光    时间: 2014-3-23 16:33

作者: AI    时间: 2014-3-23 16:53
发广告的啊
作者: 张永超    时间: 2014-3-23 17:54

作者: Sailing7    时间: 2014-3-23 18:17

作者: 晟昱阳光    时间: 2014-3-23 19:05
“当然代码优化的方法还有很多,这里只是简单列举几个例子,希望能为初学者提供一些帮助。”
我能说天然二的我看完这一句的时候还在心里重复感谢楼主吗?
作者: 917052549    时间: 2014-3-23 19:11

作者: 箫剑酒仙    时间: 2014-3-23 20:45
晟昱阳光 发表于 2014-3-23 19:05
“当然代码优化的方法还有很多,这里只是简单列举几个例子,希望能为初学者提供一些帮助。”
我能说天然二的 ...

同二   啊,,,
作者: 若要走    时间: 2014-3-23 22:38

作者: 江上远帆    时间: 2014-3-24 00:12

作者: WU_WANG_WO    时间: 2014-5-16 22:19

作者: 若要走    时间: 2014-5-27 18:37





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2