++和- -从for循环中的资源开销来理解之间的差异

在嵌入式单片机开发中,如果资源开销有限,尽量优化并减少资源占用是一项更必不可少的工作。
- 举例对比一下
++和--在包含有for循环的函数中差异 - 例举:
++
void Delay(unsigned long cnt) //产生“阻塞延时”的延时函数
{
unsigned long i;
for(i=0;i < cnt; i++);
}
#include "REG52.H"
void Delay(unsigned long cnt); //函数的声明
sbit led =P2^0;
void Delay(unsigned long cnt) //阻塞式延时函数
{
unsigned long i;
for(i=0;i < cnt; i++);
}
void main()
{
while(1)
{
led =0; //LED灯亮。
Delay(5000); //阻塞延时
led=1; //LED灯灭。
Delay(5000); //阻塞延时
}
}
- Keil编译信息

- 例举:
--
void Delay(unsigned long cnt) //阻塞式延时函数
{
for(; cnt > 0; cnt--);
}
从上面的函数中,可以看到,
--减少了一个中间变量的开销。
#include "REG52.H"
void Delay(unsigned long cnt); //函数的声明
sbit led =P2^0;
void Delay(unsigned long cnt) //阻塞式延时函数
{
for(; cnt > 0; cnt--);
}
void main()
{
while(1)
{
led =0; //LED灯亮。
Delay(5000); //阻塞延时
led=1; //LED灯灭。
Delay(5000); //阻塞延时
}
}
- 编译信息

从两者编译的信息可以看出,编译后,所占的容量是有差异的。这也是一点小小的优化的地方。
基于VSM Studio仿真资源
本实验基于
Proteus8.12平台
链接:https://pan.baidu.com/s/1clmWeaiIXZ7ucghF4cXzzQ
提取码:2emi
| 学无止境。 ——荀子 |
|---|

128

被折叠的 条评论
为什么被折叠?



