代码效率包括两个方面内容:代码的大小和代码执行速度。如果代码精简和执行速度快,
我们就说这个代码效率高。一般情况下,代码精简了速度也相应提上来了。单片机的 ROM
和 RAM 的空间都很有限,当编程时遇到单片机的 ROM 和 RAM 的不够用的时
候,或者程序要求较高的执行速度时,我们就得面对解决代码效率问题了。
提高代码效率的几种方法:
一、尽量定义局部变量
单片机程序的全局变量一般是放在通用数据存储器( RAM )中,而局部变量一般是放在特殊
功能寄存器当中。处理寄存器数据的速度比处理 RAM 数据要快,如果在一个局部函数里调
用一个全局变量将会多生成好几个代码出来。所以,少定义全局变量,多定义局部变量。
二、 改换运算符
通过改换运算符能达到精简代码的例子有:
1. 把求余运算表达式改为位与运算表达式。如: b=a%8 可以改为: b=a&7 。
2. 把乘法运算表达式改为左移运算表达式。如: b=a*8 可以改为: b=a<<3 。
3. 把除法运算表达式改为右移运算表达式。如: b=a/8 可以改为: b=a>>3 。
通过将乘除运算符更改为左移、右移运算符,可以提升程序的运行效率。
三、选择合适的数据类型
C 语言里选择变量的数据类型很讲究,变量的数据类型过小满足不了程序的要求,变量的数
据类型过大会占用太多的 RAM 资源。数据类型定义也影响程序代码的 大小。
如果把变量由 unsigned int 改成 unsigned char 。编译后,程序代码会 精简4 个字节。
四、直接嵌入代码
在程序里如果某个函数只调用一次,而又要求代码提高执行速度,建议不要采用调用函数的形式,
而应该将该函数里的代码直接嵌入主调函数里,代码执行效率会大大提 高。
|