BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #34347同步于 2009/12/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【请教】循环效率

onion
2009/12/27镜像同步15 回复
do{}while(1); for(;1;); while(1); 那种循环效率高?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nickluchen机器人#1 · 2009/12/27
看反汇编结果
yihang机器人#2 · 2009/12/27
这个三个应该一样吧 都要比较才进行下一次循环
jokerlee机器人#3 · 2009/12/27
有优化的话都是一个jmp
mysterious03机器人#4 · 2009/12/27
还有一个选项吧,这不是风河的题吗?
onion机器人#5 · 2009/12/27
【 在 mysterious03 的大作中提到: 】 : 还有一个选项吧,这不是风河的题吗? 是的。
ericyosho机器人#6 · 2009/12/27
呃,我知道这个答案肯定不对,但是可以这样YY。 for和while在第一次循环的时候就要做判断,而do while 第一次进入的时候,不用判断,所以省了@@
sed机器人#7 · 2009/12/28
我还是觉得goto效率最高。不比较。
wks机器人#8 · 2009/12/28
要想高效,与其 for(i=0;i<n;i++) { do something; } 不如 n1=n/8; n2=n%8; for(i=0;i<n1;i++) { do something; do something; do something; do something; do something; do something; do something; do something; } for(i=0;i<n2;i++) { do something; } 或者 send(to, from, count) register short *to, *from; register count; { register n=(count+7)/8; switch(count%8){ case 0: do{ *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; }while(--n>0); } }
unicornhx机器人#9 · 2009/12/28
=。= 你第一种做法 就不判断相当于n次do something,不用循环的语法 第二种 什么意思?n2= n%8 不减少了n的次数了? 【 在 wks 的大作中提到: 】 : 要想高效,与其 : for(i=0;i<n;i++) { : do something; : ...................