该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在编写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.采用数学方法优化程序

数学是计算机之母,没有数学的依据和基础,就没有计算机的发展,所以在编写程序的时候,采用一些数学算法会对程序的执行效率有数量级的提高。有时候这个问题常常被大家忽略, 对于没有经验的程序员来说更是如此。例如:求 1到100的自然数和sum = 100*(100+1)/2; 数学公式. (n +1)*n/2。

优化算法和数据结构对提高代码的效率有很大的帮助。当然有时候时间效率和空间效率是对立的,此时应分析哪个更重要,做出适当的折中。另外,在进行优化的时候不要片面的追求紧凑的代码,因为紧凑的代码并不能产生高效率的机器码。

当然代码优化的方法还有很多,这里只是简单列举几个例子,希望能为初学者提供一些帮助。

c语言禁止优化某段代码,C语言优化小技巧相关推荐

  1. 写出漂亮代码的45个小技巧

    不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默地问候这个留坑的兄弟. ...

  2. JavaScript 工作原理(二)-如何在 V8 引擎中书写最优代码的 5 条小技巧(译)

    From:https://segmentfault.com/a/1190000014770145 原文请查阅这里,略有删减. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScrip ...

  3. JavaScript 工作原理之二-如何在 V8 引擎中书写最优代码的 5 条小技巧(译)

    原文请查阅这里,略有删减. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第二章. 本章将会深入谷歌 V8 引擎的内部结构.我们也会为如何书写更好的 Java ...

  4. 提升效率:优化Java代码的35个小技巧

    每天早晨,干货准时奉上! 本文作者:萌小Q 来源: www.cnblogs.com/Qian123/p/6046096.html 前言 代码优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方 ...

  5. c语言贪吃蛇最简单代码_C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!...

    点击上方"大鱼机器人",选择"置顶/星标公众号"福利干货,第一时间送达!指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机 ...

  6. 写出漂亮代码的45个小技巧,真好用

    大家好,我是三友~~ 不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默 ...

  7. 大神和小白都在用的,敲代码需要掌握的小技巧,让你告别低效率工作!

    大家好~我是李拜天,一个希望每天都是礼拜天的程序员. 大家用学python用的最大的编辑器应该是Pychram,在这我分享几个在学习和工作中最常用的Pychram小技巧. 1.快速查看库源码 经常听人 ...

  8. layui 导航收缩代码_pycharm的十个小技巧,让你写代码效率翻倍

    前言 作 者:刘善国 漫 画:猫小光 来 源:麻瓜编程(easypython) 0. PyCharm 常用快捷键 1. 查看使用库源码 经常听人说,多看源码.源码不仅能帮我们搞清楚运行机制,还能学习优 ...

  9. vim代码对齐命令_vim让代码整齐美观的小技巧

    一.空格和Tab相关 空格和Tab是两种常见的排版缩进的字符,常见项目中的风格问题往往由此而起.vim可以很容易的处理好这些问题.首先我们要把这两个字符显示出来,默认这两个字符都是白的.使用如下方法设 ...

最新文章

  1. Elon Musk的OpenAI用VR训练机器人:解锁更多复杂动作!
  2. python画折线图详解-利用python画出折线图
  3. ESP8266\ESP32\ESP32-S2芯片支持哪些调试方式呢
  4. 程序员面试100题之八:不要被阶乘吓倒(二进制表示中最低位1的位置 )
  5. 自学编程成功概率有多少可能
  6. centos7创建asm磁盘_ASM环境下防止误将数据文件扩容到本地文件系统的方法
  7. python+ BeautifulSoup抓取“全国行政区划信息查询平台”的省市区信息
  8. C# 正则表达式选项总结
  9. php怎么将网页另存为mht代码,mht转html代码(php)
  10. FPGA学习笔记---用Quartus II生成输入输出框图
  11. [20150610]使用物化视图同步数据.txt
  12. No.3PPT风格及搭配
  13. Java弹球游戏,刚学Java时做的
  14. java jdom_java中JDOM的基本使用方法
  15. PID参数自整定库之一:继电反馈整定算法
  16. jwplayer +ffmpeg+red5 实现摄像头的直播
  17. 火绒卸载之后的残留文件夹问题
  18. 传统编译器和DL编译器的调研和理解
  19. 通过域名访问接口,报400
  20. freemarker生成word,表格分页

热门文章

  1. Aruba 云服务代金券
  2. 《MySQL DBA修炼之道》——1.7 MySQL复制架构
  3. Javascript提升阶段学习
  4. RPG JS跨平台测试
  5. CROSS APPLY 和OUTER APPLY 的区别
  6. Mybatis Plus启动注入 SQL 原理分析
  7. oracle数据库主主复制
  8. String str = new String(abc)创建了几个对象?结合源码解析
  9. @Html.ActionLink方法
  10. 51Nod 1445 变色DNA