新闻中心

EEPW首页>嵌入式系统>设计应用> 关于 while(1)和for(;;)效率问题的一点想法

关于 while(1)和for(;;)效率问题的一点想法

作者: 时间:2016-11-29 来源:网络 收藏
这几天看到好友的文章关于while(1)和for(;;)效率的讨论,手痒说了两句。回头一寻思,自己也只是推断。没有做任何实验,我们就看看这两种写法到底有什么区别:


本文引用地址://m.amcfsurvey.com/article/201611/323485.htm

实验环境: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的结果:




上一页 1 2 下一页

关键词:whilefor效率问

评论


技术专区

关闭