++和--从for循环中的资源开销来理解之间的差异
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了++和--从for循环中的资源开销来理解之间的差异相关的知识,希望对你有一定的参考价值。
++和- -从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
学无止境。 ——荀子 |
---|
以上是关于++和--从for循环中的资源开销来理解之间的差异的主要内容,如果未能解决你的问题,请参考以下文章
用php打出1到100之间的偶数之和,还有奇数之和,还有定义一个变量,用for循环打出来,总共三个