为什么外国工程师写空跳语句愿意写成for(;;) 而我们愿意写成while(1) 在CPU内有什么不同的吗 请高手赐教啊

[复制链接]
查看11 | 回复2 | 2012-10-22 09:46:00 | 显示全部楼层 |阅读模式
for(;;)编译成汇编后是无条件转移,while(1)是要0和1进行一下比较的,所以从这个方向上看for(;;)是要比while(1)快的因为少了一个比较指令,但现在的编译器都是有一定的优化能力的,像while(1)这种会优化成和for(;;)一样的汇编代码。1.本身这两种写法无任何区别,和编译器高度相关,这个是我们有能力则关心,没能力关心也不需要太关心的事;2.嵌入式代码对C/C++写法要求很高,建议有基础的朋友们阅读阅读MISRA-C2004, 2008 和一些C++的国际级标准规范;3.把主要的精力多放在代码的规范上,而不是代码的效率上。毕竟,单片机也使足够的快了,绝大部分情况下成立;如果你是做代码优化或者做算法的朋友们,建...
回复

使用道具 举报

千问 | 2012-10-22 09:46:00 | 显示全部楼层
各地,有各地的方言土语。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行