C语言优化小技巧

发布时间:2014-4-24 14:53    发布者:edu11814
关键词: 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
  优化算法和数据结构对提高代码的效率有很大的帮助。当然有时候时间效率和空间效率是对立的,此时应分析哪个更重要,做出适当的折中。另外,在进行优化的时候不要片面的追求紧凑的代码,因为紧凑的代码并不能产生高效率的机器码。
本文地址:https://www.eechina.com/thread-128960-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
xydedu 发表于 2014-4-28 10:33:51
51黄金周来了!且学且珍惜-免费学习C语言-就能进行嵌入式产品开发,信盈达嵌入式实训学院推出
一、嵌入式Linux驱动开发班--底层驱动,内核开发到应用一网打尽
二、嵌入式ARM9、11+Linux实战班
三、嵌入式cortex-m3+ucos开发培训班
四、FPGA应用开发班、DSP实训
五、android驱动开发班
六、单片机综合开发班 stm32、电子基础(数电模电) PCB画板等参与优惠活动
想要成功,从技术开始!要想高薪,从今天开始,只要有兴趣你就来!
深圳、广州、郑州三大实训基地自由转,免费参加试听课程、技术交流活动
咨询杨老师:13724236349   QQ:1075349026
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 我们是Microchip
  • 你仿真过吗?使用免费的MPLAB Mindi模拟仿真器降低设计风险
  • 深度体验Microchip自动辅助驾驶应用方案——2025巡展开启报名!
  • 更佳设计的解决方案——Microchip模拟开发生态系统
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表