您的位置 首页 电子

关于 while(1)和for(;;)功率问题的一点主意

这几天看到好友的文章关于while(1)和for(;;)效率的讨论,手痒说了两句。回头一寻思,自己也只是推断。没有做任何实验,我们就看看这两种写

这几天看到老友的文章关于while(1)和for(;;)功率的评论,手痒说了两句。回头一深思,自己也仅仅揣度。没有做任何试验,咱们就看看这两种写法到底有什么差异:

试验环境:IAR EWARM 5.2

我就随便在一个嵌入式项目上做文章了,首要工程C言语编译优化挑选了None, 输出挑选带汇编输出,输出的汇编文件和C言语对应上。

我在main函数里先用for(;;)写了个死循环,咱们看看编译成果:

留意main.c生成了一个对应的main.s

能够看到,是用一条跳转指令直接代替的for (;;)。

再更改一下代码:

编译一下看成果:

while(1)的循环也是一句跳转指令所代替。

IAR EWARM 5.2下,可见 for(;;)和while(1)在未开优化代码级别下,彻底相同。无任何差异。

咱们再来看看 linux 下的arm-rtems4.9-gcc的成果:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/255555.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部