标题: 单片机C语言代码如何简化? [打印本页]

作者: 李冬    时间: 2022-11-7 09:00
标题: 单片机C语言代码如何简化?
条件太多,如何简化

51hei图片_20221107090007.png (20.67 KB, 下载次数: 71)

51hei图片_20221107090007.png

作者: 名字不是重点    时间: 2022-11-7 10:30
全单数啊!!这就是规律了:if(t%2) mm[i++]=int0
作者: Hephaestus    时间: 2022-11-7 11:59
if(t<30&&t&1)mm[i++]=int0;
作者: 快乐眼泪    时间: 2022-11-7 13:56
能回答的都大佬!
作者: yzwzfyz    时间: 2022-11-7 14:06
与你的【精简】目标有关。
什么样为最简呢?
源代码用字符最少?烧录时的字节最少?
作者: 188610329    时间: 2022-11-7 20:58
有规律的话,找规律,
无规律的话,如下:

case:1
case:3
case:5
...............
mm[i++]=int0;
break;
作者: sav    时间: 2022-11-8 16:15
1)选择合适的算法和数据结构  应熟悉算法语言。将比较慢的顺序查找法用较快的二分查找法或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,这样可以大大提高程序执行的效率。     选择一种合适的数据结构也很重要。数组与指针具有十分密切的关系,一般来说指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。但是在Keil 中则相反,使用数组比使用的指针生成的代码更短。     2)使用尽量小的数据类型  能够使用字符型(char)定义的变量,就不要使用整型(int)变量来定义;能够使用整型变量定义的变量就不要用长整型(long int),能不使用浮点型(float)变量就不要使用浮点型变量。当然,在定义变量后不要超过变量的作用范围,如果超过变量的范围赋值,C 编译器并不报错,但程序运行结果却错了,而且这样的错误很难发现。     3)使用自加、自减指令  通常使用自加、自减指令和复合赋值表达式(如a-=1 及a+=1 等)都能够生成高质量的程序代码,编译器通常都能够生成inc 和dec 之类的指令,而使用a=a+1 或a=a-1之类的指令,有很多C 编译器都会生成2~3个字节的指令。     4)减少运算的强度  可以使用运算量小但功能相同的表达式替换原来复杂的的表达式。
作者: yscbg    时间: 2022-11-8 16:51
if(t%2)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1